簡體   English   中英

使用jQuery時,我應該關心JavaScript引擎的速度嗎?

[英]Should I care about JavaScript engine speed when using jQuery?

我正在為頁面編寫jQuery,該頁面包含許多DOM元素 (我對此無能為力)。 主要的目標瀏覽器是IE7 ,我對其JavaScript引擎的速度感到擔憂。 我已經編寫的腳本比較笨拙,並且已盡我所能對性能進行了調整。

我可以編寫易於維護和理解的腳本,例如使用單個contains語句。 或者,我可以通過此凌亂的HTML縮小DOM搜索的范圍來解決問題,從而提高引擎的復雜性。

編寫jQuery腳本時,我應該關心瀏覽器JavaScript引擎的速度嗎?

jQuery是用JavaScript編寫的。 因此,您應該注意JavaScript引擎的速度,因為它也會影響jQuery代碼的速度。

關於如何編寫更有效的jQuery代碼,有很多技巧和竅門。 主要原理是了解jQuery的工作原理,如何將選擇器轉換為從DOM中選擇元素的查詢等。

只要有可能,嘗試使用本機Javascript方法而不是jQuery方法,您通常會注意到速度的顯着提高, 尤其是在IE中。 IE的JS呈現引擎是SLLLOOOOWWW,與其他非沉悶的瀏覽器相比。

例如,我有一個AJAX腳本,該腳本在FF / Safari中運行良好,但在IE中像冷凍糖蜜一樣運行。 原來編寫它的開發人員大量使用了jQuery的$ .each()方法來從大型JSON文件中獲取數據。 我改寫了腳本,改為使用標准的JS for()循環,之后對其進行了一些速度測試,結果表明使用for()的速度快了20倍以上。

是的,但是您不應該沉迷於它:)

我還沒有遇到過一個實例,在該實例中,使用JQuery或插件的好處(跨瀏覽器的兼容性,非常有用的功能)不會因降低速度而被抵消。 而且有時我會處理相當大的網頁。

無論如何,您唯一要知道的就是嘗試一下。 首先以最明智的方式編寫代碼。 如果速度太慢,則可以對其進行優化。

優化DOM遍歷
http://www.learningjquery.com/2006/12/quick-tip-optimizing-dom-traversal

包含可能相對較慢,因為我不認為文檔模型會通過元素內部顯示的文本進行任何索引。

但是,我不確定嘗試對某些項目進行過度設計並進行優化以優化外觀是明智的。 尋找最簡單的方法,進行測試,然后在遇到問題時進行優化。

不,您不應該在意它,因為它不會影響您編寫代碼的方式。

就是說,您應該始終編寫高效的Javascript,這既因為這是一種很好的做法,又因為對於大多數站點,您都不知道任何特定用戶在運行哪種瀏覽器,因此您也可能會遇到最糟糕的情況。

是的,您應該關注,但是幸運的是,jQuery Team同樣關注:

jQuery Internals的最新更改(查看最后兩張幻燈片)

不要過度優化,而是根據需要進行優化。

如果速度很慢,那么您真的別無選擇,只能去那里幫助jquery了。 但是,如果不是,那又何必呢?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM