二十五岁时我们都一样愚蠢、多愁善感,喜欢故弄玄虚,可如果不那样的话,五十岁时也就不会如此明智。
标题:JavaScript最佳性能
如何加快你的JavaScript代码执行.
减少循环活动
循环经常用于编程.
循环中的每个语句,包括for语句,为循环的每次迭代执行.
可以放置在循环外的语句或赋值会使循环运行得更快.
差的:
var i; for (i = 0; i < arr.length; i++) {好的:
var i; var l = arr.length; for (i = 0; i < l; i++) {每次循环迭代时,坏代码访问数组的长度属性.
更好的代码访问长度属性以外的循环,使循环运行速度更快.
减少DOM访问
访问HTML DOM很慢,相比其他JavaScript语句.
如果你想多次访问一个DOM元素,一旦访问它,并用它作为一个局部变量:
var obj; obj = document.getElementById("demo"); obj.innerHTML = "Hello";
减少DOM的大小
保存在HTML DOM小的元素个数.
这将总是提高页面加载,并加快渲染(页面显示),尤其是在较小的设备.
每一个试图搜索DOM(如getElementsByTagName)将受益于一个较小的DOM.
避免不必要的变量
如果不打算保存值,不要创建新变量.
通常你可以像这样替换代码:
var fullName = firstName + " " + lastName; document.getElementById("demo").innerHTML = fullName;用下面的替换:
document.getElementById("demo").innerHTML = firstName + " " + lastName
延迟JavaScript的加载
把脚本放在页面正文的底部,让浏览器先加载页面.
当脚本正在下载时,浏览器将不会启动任何其他下载。此外,所有的解析和渲染活动可能会被阻塞.
HTTP规范定义了浏览器不能超过两个并行下载.
另一种方法是在脚本标签中使用defer="true"。延迟属性指定该脚本在页面完成解析后执行,但仅适用于外部脚本
如果可能的话,您可以在页面加载后将代码添加到页面中:
<script> window.onload = downScripts; function downScripts() { var element = document.createElement("script"); element.src = "myScript.js"; document.body.appendChild(element); } </script>
避免使用 with
避免使用with关键字. 它对速度有负面影响。它也将混淆JavaScript作用域.
with 关键字不允许在严格模式下.