2015-08-26 19 views
2

就像标题所说。

我是我公司的前端人员,而我使用jQuery的后端人员之一使用JavaScript。我知道篱笆两边都有强烈的意见,我不想在这里开始战斗,我只是好奇而已。

对我来说,除了JavaScript函数在窗口加载时启动,而jQuery函数在文档加载时启动外,似乎并没有多大区别。

+4

请注意,jQuery **是** JavaScript。换句话说,当你使用jQuery时,你正在使用JavaScript。至于这个问题,“更快”并不是做比较。触发jQuery版本的“ready”事件在* load事件之前被触发*,所以jQuery版本将首先运行。这个好坏完全取决于你的代码是怎么回事。 – Pointy

+2

'$(function(){init();});'可以被重写为'$(init);',匿名函数没有任何用处。 – Quentin

+0

值得注意的是这两个**不完全相同。相当于jquery使用'.bind(“load”...'相关问题(fd,我记得回答):http://stackoverflow.com/questions/27718996/what-are-the-difference-between- document-bindready-function-and-docume?lq = 1 – blgt

回答

1

假设你正在谈论纯粹“的代码运行时”,而忽略外部的变量(即包括在页面上的jQuery的开销),jQuery的方法会更快,因为它发生在domcontentloaded事件中,其中应该发生的时间早于windowload事件。

为什么它更快?当DOM可用时,它会触发,然后类似图像已加载。在一个形象很重的网站,这可能是一个非常不同的时间。 windowload事件在这些资源加载后触发,这很可能在文档的生命周期中稍后(有时很晚)发生。

+0

感谢您的解释,这是有道理的。我给了你绿色检查因为你先回答。:) –

5

这取决于你测量的是什么。

就执行时间而言,加载所有jQuery并通过jQuery函数运行代码需要更长的时间,然后它将调用一个本地方法。 (多少差异取决于你是否要加载jQuery或不加载)。

根据何时执行init函数,load通常会在DOMReady之后触发相当长的时间,因为load等待图像,样式表等完成加载。

无论如何,在更改两个变量时,您通常不应该进行性能比较。 jQuery Vs Native是DOMReady Vs Load的一个单独问题。

你也应该谨慎premature optimisation

相关问题