日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

js代码优化

發(fā)布時間:2025/7/25 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js代码优化 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、減少Jquery使用

處理dom遍歷和復(fù)雜的腳本場景時,jquery可能有很大的幫助,不過在處理簡單的、直截了當(dāng)?shù)拇a場景就會遲緩。盡可能的避免jquery對象創(chuàng)建,尤其在循環(huán)中。

2、優(yōu)化循環(huán)

用被緩存的數(shù)組長度

優(yōu)化前 for (var i = 0; i < arr.length; i++) {// some code here }優(yōu)化后 for (var i = 0, len = arr.length; i < len; i++) {// some code here }

3、if/else和swith語句

  • 如果只是1或者2個語句,那if/else性能更好點(diǎn)
  • 如果3個或者3個以上,那swith更好,這個可以通過測試來驗(yàn)證(測試地址)

4、緩存dom元素、jquey對象、對象/數(shù)組值

5、減少reflow

對dom的每次改變都會有一個重大的性能成本造成頁面reflow

  • 避免在document上直接進(jìn)行頻繁的DOM操作,如果確實(shí)需要可以采用off-document的方式進(jìn)行
  • 先將元素從document中刪除,完成修改后再把元素放回原來的位置
  • 將元素的display設(shè)置為”none”,完成修改后再把display修改為原來的值
  • 如果需要創(chuàng)建多個DOM節(jié)點(diǎn),可以使用DocumentFragment創(chuàng)建完后一次性的加入 //優(yōu)化前 var list=document.getElementById("list"); for(var i=0;i<10;i++){ var item=document.createElement("li"); item.innerHTML="option "+(i+1); list.appendChild(item); }//優(yōu)化后 var list=document.getElementById("list"); var fragment=document.createDocumentFragment(); for(var i=0;i<10;i++){ var item=document.createElement("li"); item.innerHTML="option "+(i+1); fragment.appendChild(item); } list.appendChild(fragment);
  • 集中修改樣式 優(yōu)化前: function selectAnchor(element){ var changeDiv = document.getElementById(element); changeDiv.style.color = ‘#093′; changeDiv.style.background = ‘#fff’; changeDiv.style.height = ’100px’; }優(yōu)化后: CSS: changeDiv { background: #fff; color: #093; height: 100px; } JavaScript: function selectAnchor(element) { document.getElementById(element).className = ‘changeDiv’; }

    ?

6、避免全局的搜索

var $button=$(".button"); $buttons.find( "a.mybutton" );替代$( "a.mybutton" );

7、優(yōu)先dom搜索,然后再過濾

  • 優(yōu)先使用原生的getElementById、getElementsByTagName
  • 例如.find( "a" ).filter( "[href=*'url_fragment']" )替換.find( "a[href=*'url_fragment']"?

8、綁定多個事件到一個元素

//優(yōu)化前 var $elem = $( "#element" ); $elem.on( "mouseover", function( event ) {// mouseover }); $elem.on( "mouseout", function( event ) {// mouseout }); //優(yōu)化后 $( "#elem" ).on( "mouseover mouseout", function( event ) {if ( event.type === "mouseover" ) {// mouseover} else {// mouseout } });

?9、Property深度

  • object.name<object.name.name
  • 這個property越深,獲取時間越長?
?



?

轉(zhuǎn)載于:https://www.cnblogs.com/hj4444/p/3985321.html

總結(jié)

以上是生活随笔為你收集整理的js代码优化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。