<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="JavaScript优化方案一" id="card1">
<p> 游客</p><p>
标题:JavaScript优化方案一<br/>
正文:<br/>
作为一名网站开发WEB前端工程师，对自己开发的网站项目应该尽可能地对其性能进行优化，现在互联网上搜索到的网站性能优化多是翻译转载自Yahoo14条或34条。Yahoo的优化建议关注在大的方面，下面，W3C Group为大家呈现WEB前端开发高性能优化部分之JavaScript的优化细节！一、避免出现脚本失控不论什么脚本，在任何时间、任何浏览器上执行，都不应该超过100毫秒。如果实际执行的时间长于这个底限，一定要将进程分解成若干更小的代码段。脚本失控基本上有以下四个方面的原因：1. 在循环中执行了太多的操作解决这个问题的诀窍就是用下面这两个问题来评估每个循环：这个循环必须要同步执行么？循环里面的数据，必须要按顺序执行么？如果1和2都可以否定，那么建议使用setTimeout方式将循环体切分成小块进行异步处理将循环中的定义变量及初始化操作放到循环外。参见：http://www.w3cgroup.com/article.asp?id=1112. 臃肿的函数体在JavaScript中，我们应该尽可能的用局部变量来代替全局变量!理解JavaScript作用域链。参见：http://www.jslab.org.cn/?tag=ScopeChainAndClosure理解原型链。参见：http://www.jslab.org.cn/?tag=prototypeChain3. 过多的递归使用迭代方式替代递归，采用memoization技术优化递归斐波那契数列的递归算法优化，参见：http://www.jslab.org.cn/?tag=Memoization4. 过多的DOM调用在Web开发中，JavaScript的一个很重要的作用就是对DOM进行操作。可你知道么？对DOM的操作是非常昂贵的，因为这会导致浏览器执行回流（reflow）操作。而执行了过多的回流操作，你就会发现自己的网站变得越来越慢了。我们应该尽可能的减少DOM操作。回流操作主要会发生在几种情况下：改变窗体大小更改字体添加移除stylesheet块内容改变哪怕是输入框输入文字CSS虚类被触发如 :hover更改元素的className当对DOM节点执行新增或者删除操作或内容更改时。动态设置一个style样式时（比如element.style.width=&quot;10px&quot;）。当获取一个必须经过计算的尺寸值时，比如访问offs<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=484&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=484&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=484&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=484&amp;Page=3">[3]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=484&amp;Page=4">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=484">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=484">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>