上的均线系统,说JavaScript的速度
Processor: Core 2 Duo 2.2 GHz, Memory: 4 GB
多少DOM的操作也可以javascript做什么呢? 有没有办法看到一个简单的jQuery动作需要多长时间(以毫秒为单位)?例如,一个喜欢:
$("#example").css("color","red");
上的均线系统,说JavaScript的速度
Processor: Core 2 Duo 2.2 GHz, Memory: 4 GB
多少DOM的操作也可以javascript做什么呢? 有没有办法看到一个简单的jQuery动作需要多长时间(以毫秒为单位)?例如,一个喜欢:
$("#example").css("color","red");
如果您的浏览器支持此功能,您可以在致电前使用console.profile();
,之后使用console.profileEnd();
。您控制台应该告诉你输出过了多长时间,电话的数量等
console.profile();
$("#example").css("color","red");
console.profileEnd();
NETTUTS +有一个教程here。
var start = Date.now();
for(var i = 0; i < 10000; i++) { // any number of repetitions
$("#example").css("color", "red");
}
var end = Date.now();
alert("It took " + Math.round((end - start)/10000).toString() + " milliseconds on average.");
是如何你火候。我不知道DOM操作。你可以看看sizzle.js
的源代码来找出它的功能,尽管我知道它优化了ID选择器,然后依赖于浏览器。也许他们按顺序遍历树,直到找到匹配的ID。这将非常快。
你永远不会只有一个。 –
@Tomalak:好点,固定。 – Ryan
我个人是使用Date.now()的粉丝,因为你不必经历创建一个会得到GC'd的新对象的麻烦。公平地说,就好像加速5%,但这些东西加起来。 另外,你不需要调用.toString() - 自动强制! –
作出这些决定的过程被称为“剖析”。您可以在Chrome开发人员工具和Firebug for Firefox中找到内置的分析器。
完全取决于您正在讨论的浏览器 - 不同浏览器和版本中JavaScript性能的巨大差异。 –