Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网站建设 > PHP > 按速度优化JavaScript代码
【标  题】:按速度优化JavaScript代码
【关键字】:JavaScript
【来  源】:http://blog.csdn.net/Qjaja/archive/2006/09/21/1262694.aspx

按速度优化JavaScript代码

Your Ad Here

  一旦你的JavaScript能运行,你就会想到使其运行得更快。在讲解加速代码的方法之前,让我先讲讲“80/20规则”:百分之八十的优化 是由最初百分之二十的工作所完成的。竭力实现剩余百分之二十的速度优化是一种巨大的痛苦,而且经常导致完全不能读和难以管理的代码。简言之,如果你的 JavaScript运行得很慢,你可以用很多简单的方法来加速它,但是除非你的代码确实运行得很慢,我不会对它进行再优化。下面是一些使你的代码轻松运 行的方法。


限制循环内的工作量


  程序运行慢的最常见原因是循环内的重复工作。如果一条命令只需要执行一次,就没有必要把它放在循环内。例如:


    var index = 0;


    while (index <10)

    {

      var the_date = new Date();

      var the_day = the_date.getDay();

      var the_name = prompt("what's the kid's name? " ,"");

      alert("On " + the_day + " " + the_name + " is a very special person.");

      index++;

    }


  此程序循环执行10次。每次得到当天的日期,询问小孩的名字,然后打印出“On Monday,so-and-so is a
very special person.”。但是日期是不会改变的,总是今天。所以没有必要把前两行放在循环中。把它们从循环中拿出来,让其只执行一次而不是10次,这样会节省时间:


    var index = 0;

    var the_date = new Date();

    var the_day = the_date.getDay();


    while (index <10)

    {

      var the_name = prompt("what's the kid's name? " ,"");

      alert("On " + the_day + " " + the_name + " is a very special person.");

      index++;

    }


定制if-then-else语句,按最可能到最不可能的顺序

  因为if-then-else语句在遇到条件为真时结束,你可以通过把最有可能的条件放到最开始来减少需要判断的语句的数量。例如:


    var pet = prompt("what kind of pet do you have?", "");


    if (pet == "cat")

    {

      doCatStuff();

    }else if (pet == "dog")

    {

      doDogStuff();

    } else if (pet == "bird")

    {

      doBirdStuff();

    } else if (pet == "lizard")

    {

      doLizardStuff();

    }


  一般来说,程序中的if子句比从lizard到dog需要执行的逻辑判断要少。


最小化重复执行的表达式

  如果你发现需要重复计算一个特定的表达式,如var pi=22/7,只计算一次并把它放在一个全局变量中或
许是个好主意。例如,不象下面程序这样:

    function theArea(radius)

    {

      var pi = 22/7;

      var area = pi * radius * radius;

      return area;

    }

    function theCircumference(radius)

    {

      var pi = 22/7;

      var circumference = 2 * pi * radius;

      return circumference;

    }

而是这样做:

    var pi = 22/7;


    function theArea(radius)

    {

      var area = pi * radius * radius;

      return area;

    }

    function theCircumference(radius)

    {

      var circumference = 2 * pi * radius;

      return circumference;

    }

    我知道我在用一个全局变量,我也说过这不是一个好主意。然而,一些数字,如pi,其值在程序中永远不会改变,是此规则的特例。通过只计算pi一次,可以省 去额外的计算。或许时间上的一些小的节省,累加起来会很管用。如果你发现代码运行很慢,你只要注意一些事情。这些都很明显,但是当你发现你经常忽略象这样 简单的优化技巧时,你会很吃惊。


    (引自<<JavaScript高级教程>>)

初学Ajax笔记:【上一篇】
在js脚本中找到控件:【下一篇】
【相关文章】
  • Javascript实现图片放大镜效果
  • JavaScript实现在线编辑表格
  • javascript函数库
  • 理解JavaScript中的事件
  • 让javascript跑得更快
  • javascript 判断当前窗口是否是顶级窗口的方法
  • Javascript+XML 操作
  • 从Ajax中看javascript语法(函数篇)
  • JavaScript学习笔记 一
  • javascript实现域名动态指向功能
  • 【随机文章】
  • 利用RTTI实现多语言界面
  • 宽带IP城域网之关键技术
  • Form中增加listbox和checkbox
  • 事务管理最佳实践多余的话之三Spring声明式事务管理出错示例与解决之道
  • 漏洞分类及发掘讲座
  • C++ Builder初学问与答9
  • MFC的CString 的效率
  • Eclipse Tips: Selection Service
  • 实例接触CorelDRAW 10 新功能(十四)
  • Domino 开发电子书集
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.