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);

    }

    使用此函数的前提条件:

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

  • 相关阅读:
    apache的源代码编译安装
    python学习笔记(五) 200行实现2048小游戏
    python学习笔记(四) 思考和准备
    python学习笔记(三)高级特性
    python自学笔记(二)
    python自学笔记(一)
    redis 配置和使用(C++)
    汇编基础最后一篇--机器语言指令
    汇编语言学习笔记(六)
    网络编程学习方法和图书推荐
  • 原文地址:https://www.cnblogs.com/yushunwu/p/2188354.html
Copyright © 2011-2022 走看看