• 高性能Javascript 分割任务学习笔记


    分割任务   Spliting Up Tasks    数组处理方式

    函数运行时间过长(Javascript最长运行时间为100毫秒,我们应该减半处理,为50),可以切割为一系列的小函数。放入数组中,用setTimeout来处理.

    每行代码都可以看成是一个原子任务,按功能组合一些代码,都形成一个任务函数。

    代码

    function saveDocument(id) {

      openDocument(id);

      writeText(id);

      closeDocument(id);

      updateUI(id);

    }

    切割任务的数组处理方式

    function saveDocument(id) {

      var tasks = [openDocument,writeText,closeDocument,updateUI];

      setTimeout(function(){

        var task = tasks.shift();

        task(id);

        if(tasks.length > 0) {

          setTimeout(arguments.callee,25);

        }

          },25);

    }

    函数封装

    function multistep(steps,args,callback) {

      var tasks = steps.concat();

      setTimeout(function(){

        var task = tasks.shift();

        task.apply(null,args || []);

        if(tasks.length > 0) {

          setTimeout(arguments.callee,25);

        } else {

          callback();

        }

      },25);

    }

    使用此函数的前提条件:

      任务可以异步处理面不影响用户体验或造成相关代码错误.

  • 相关阅读:
    mxd与service的关系
    转到不同磁盘
    通过vs命令提示符注册dll
    粘贴带有行号的代码到vs2010中
    添加本地图层出现要求cross domain policy的错误
    删除服务后添加相同名字的服务注意点
    Silverlight_F5调试时要求安装相应版本的运行时
    网页优化
    SqlBulkCopy快速批量大数据插入
    2012项目总结
  • 原文地址:https://www.cnblogs.com/yushunwu/p/2188354.html
Copyright © 2020-2023  润新知