zoukankan      html  css  js  c++  java
  • 高性能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);

    }

    使用此函数的前提条件:

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

  • 相关阅读:
    Android中Chronometer 计时器和震动服务控件
    Android中几种常用的话框
    Android通过长按图片设置为壁纸
    Android把图片保存到SQLite中
    激活Win10
    SQL 语句解决实际问题
    在Foxmail邮件客户端登录263企业邮箱
    Visual Studio 安装VS10x CodeMAP
    开发常见问题汇总
    Java笔记:编写第一个Java程序
  • 原文地址:https://www.cnblogs.com/yushunwu/p/2188354.html
Copyright © 2011-2022 走看看