摘要:避免雙重求值構造函數。例如當你在代碼中執行另一段代碼時,每次調用都會創建一個新的解釋器編譯器實例,非常消耗性能,代碼執行速度會慢許多。避免重復工作最常見的重復工作瀏覽器探測。因為每次的檢查過程都是相同的,看看指定方法是否存在。
避免雙重求值
eval()、Function()構造函數、setTimeout()、setInterval()。每個方法允許你傳入一個javascript代碼字符串并執行它。 例如:`setTimeout("sum=num1+num2",100);` 當你在javascript代碼中執行另一段javascript代碼時,每次調用都會創建一個新的解釋器/編譯器實例,非常消耗性能,代碼執行速度會慢許多。避免重復工作
最常見的重復工作:瀏覽器探測。 反例:
function addHandler(target,eventType,handler){ if(target.addEventListerner){//DOM2 Events target.addEventListener(eventType,handler,false); }else{//IE9以下 target.attachEvent("on"+eventType,handler); } }
該例子乍一看似乎已經優化了,隱藏的性能問題在于每次函數調用時都做了重復工作。因為每次的檢查過程都是相同的,看看指定方法是否存在。但是其實檢查一次就夠了。 解決方案: 1.延遲加載(Lazy Loading) function addHandler(target,eventType,handler){ if(targrt.addEventListerner){ addHandler=function(target,eventType,handler){ target.addEventListerner(eventType,handler,false); }; }else{ addHandler=function(target,eventType,handler){ target.attachEvent("on"+eventType,handler); }; } } //以上方法會在函數第一次調用時,檢查并決定使用哪種方法去綁定事件處理器。然后原始函數被包含正確操作的新函數覆蓋。 2.條件預加載(Conditional Advance Loading) 條件預加載會在腳本加載期間提前檢測,而不會等到函數被調用時。 var addHandler=document.body.addEventListerner ? function(target,eventType,handler){ targrt.addEventListerner(eventType,handler,false); }: function(target,eventType,handler){ target.attachEvent("on"+eventType,handler); };
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/81512.html
摘要:異步編程在傳統編程實踐中,大多數操作都是同步發生的。中的異步編程異步是一種輸入輸出處理的形式,它允許在傳輸完成之前,其它處理能繼續進行。 本文轉載自:眾成翻譯譯者:網絡埋伏紀事鏈接:http://www.zcfy.cc/article/1759原文:https://blog.risingstack.com/node-hero-async-programming-in-node-js/ ...
摘要:如何才能成為一名專業的開發者資深開發者在其博客上分享了一些心得。要想成為一個專業的程序員,首先要成為一個中級程序員。永遠不要低估陪伴的力量結論當你專注于實踐上面所提到各種方法的時候,你就在成為專業開發者的路上。 如何才能成為一名專業的PHP開發者?資深Web開發者Bruno Skvorc在其博客上分享了一些心得。 showImg(http://segmentfault.com/img...
摘要:看起來沒有集合框架,線程,等那么耀眼,但它可是很多框架的基礎啊回復反射查看相關文章,先把基礎學會,后面的得用到它。 回頭看看, 我進入Java 領域已經快15個年頭了, 雖然學的也一般, 但是分享下我的心得,估計也能幫大家少走點彎路。[入門]我在2001年之前是C/C++陣營, 有C和面向對象的基礎, 后來轉到Java ,發現沒有指針的Java真是好簡單, 另外Java 的類庫好用的讓...
摘要:推薦高性能網站建設指南高性能網站建設進階指南理由在讀完前幾本書之后我們對前端的性能和自己的代碼的效率已經達到相當的高度了,然后我們在接觸一些前端工程師的一些精髓。 WEB前端研發工程師,在國內算是一個朝陽職業,這個領域沒有學校的正規教育,大多數人都是靠自己自學成才。本文主要介紹自己從事web開發以來(從大二至今)看過的書籍和自己的成長過程,目的是給想了解JavaScript或者是剛...
閱讀 3723·2021-11-24 09:39
閱讀 1870·2021-11-16 11:45
閱讀 616·2021-11-16 11:45
閱讀 1029·2021-10-11 10:58
閱讀 2475·2021-09-09 11:51
閱讀 1941·2019-08-30 15:54
閱讀 687·2019-08-29 13:13
閱讀 3466·2019-08-26 12:18