橘子味的心
标题: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 关键字不允许在严格模式下.


目录

分类