就像標題所說。
我是我公司的前端人員,而我使用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