【高性能前端3】高性能JavaScript

使用事件代理

有時候我們會感覺到頁面反應遲鈍,這是因爲DOM樹元素中附加了過多的事件句柄並且些事件句病被頻繁地觸發。這就是爲什麼說使用事件代理是一種好方法了。如果你在一個div中有10個按鈕,你只需要在div上附加一次事件句柄就可以了,而不用去爲每一個按鈕增加一個句柄。事件冒泡時你可以捕捉到事件並判斷出是哪個事件發出的。

緩存選擇器查詢結果

選擇器查詢是開銷很大的方法。所以,使用選擇器的次數應該越少越好,並且儘可能緩存選中的結果,便於以後反覆使用。比如,下面這樣的寫法就是糟糕的寫法:
jQuery('#top').find('p.classA');
jQuery('#top').find('p.classB');
更好的寫法是:
var cached = jQuery('#top'); cached.find('p.classA'); cached.find('p.classB');

避免頻繁的IO操作

使用JavaScript訪問cookie或localStorage是比較慢,因此爲了提升性能,應儘量少對cookie或localStorage進行操作。

避免頻繁的DOM操作

使用JavaScript訪問DOM元素是比較慢的,因此爲了提升性能,應該做到:
  1. 緩存已經查詢過的元素;
  2. 線下更新完節點之後再將它們添加到文檔樹中;
  3. 避免使用JavaScript來修改頁面佈局;

使用微類庫

通常開發者都會使用JavaScript類庫,如jQuery、Mootools、YUI、Dojo等,但是開發者往往只是使用JavaScript類庫中的部分功能。爲了更大的提升性能,應儘量避免使用這類大而全的類庫,而是按需使用微類庫來輔助開發。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章