就像标题所说。
我是我公司的前端人员,而我使用jQuery的后端人员之一使用JavaScript。我知道篱笆两边都有强烈的意见,我不想在这里开始战斗,我只是好奇而已。
对我来说,除了JavaScript函数在窗口加载时启动,而jQuery函数在文档加载时启动外,似乎并没有多大区别。
就像标题所说。
我是我公司的前端人员,而我使用jQuery的后端人员之一使用JavaScript。我知道篱笆两边都有强烈的意见,我不想在这里开始战斗,我只是好奇而已。
对我来说,除了JavaScript函数在窗口加载时启动,而jQuery函数在文档加载时启动外,似乎并没有多大区别。
假设你正在谈论纯粹“的代码运行时”,而忽略外部的变量(即包括在页面上的jQuery的开销),jQuery的方法会更快,因为它发生在domcontentloaded
事件中,其中应该发生的时间早于window
的load
事件。
为什么它更快?当DOM可用时,它会触发和,然后类似图像已加载。在一个形象很重的网站,这可能是一个非常不同的时间。 window
的load
事件在这些资源加载后触发,这很可能在文档的生命周期中稍后(有时很晚)发生。
感谢您的解释,这是有道理的。我给了你绿色检查因为你先回答。:) –
这取决于你测量的是什么。
就执行时间而言,加载所有jQuery并通过jQuery函数运行代码需要更长的时间,然后它将调用一个本地方法。 (多少差异取决于你是否要加载jQuery或不加载)。
根据何时执行init
函数,load
通常会在DOMReady之后触发相当长的时间,因为load
等待图像,样式表等完成加载。
无论如何,在更改两个变量时,您通常不应该进行性能比较。 jQuery Vs Native是DOMReady Vs Load的一个单独问题。
你也应该谨慎premature optimisation
请注意,jQuery **是** JavaScript。换句话说,当你使用jQuery时,你正在使用JavaScript。至于这个问题,“更快”并不是做比较。触发jQuery版本的“ready”事件在* load事件之前被触发*,所以jQuery版本将首先运行。这个好坏完全取决于你的代码是怎么回事。 – Pointy
'$(function(){init();});'可以被重写为'$(init);',匿名函数没有任何用处。 – Quentin
值得注意的是这两个**不完全相同。相当于jquery使用'.bind(“load”...'相关问题(fd,我记得回答):http://stackoverflow.com/questions/27718996/what-are-the-difference-between- document-bindready-function-and-docume?lq = 1 – blgt