javascript - 如何優(yōu)化jquery循環(huán)append操作?
問題描述
項(xiàng)目里有一個(gè)頁面展示功能,需要在指定的class所屬的標(biāo)簽里添加canvas標(biāo)簽,因?yàn)橛胁樵児δ埽砸鶕?jù)查詢的數(shù)據(jù)量不同來添加相應(yīng)數(shù)量的canvas標(biāo)簽,我現(xiàn)在是用循環(huán)操作,先隱藏指定的class標(biāo)簽,每次循環(huán)都用append添加到指定的class的標(biāo)簽里,循環(huán)完后再顯示那個(gè)隱藏的class標(biāo)簽。這樣數(shù)據(jù)量小的時(shí)候頁面渲染的時(shí)間還算正常,一秒就可以了,但是只要數(shù)據(jù)量一大,差不多300條以上,就要幾秒的時(shí)間才能渲染完,500條數(shù)據(jù)就要5秒左右,上千條就要十多秒了。因?yàn)槲沂怯胻hinkphp框架,一開始是想先把canvas標(biāo)簽寫到html頁面里后面再用Js去修改css樣式,但是因?yàn)閏anvas標(biāo)簽要用id來操作,而我需要添加很多canvas標(biāo)簽,id又不能重復(fù),所以選擇用js動態(tài)添加的方式。想請教大神們有沒有其他思路來解決這個(gè)問題?(ps:我不會vue或者react這種框架,要換這些的話還得從頭學(xué)起,暫時(shí)不考慮前端方面用這些重做)
問題解答
回答1:自己相當(dāng)于構(gòu)建了虛擬節(jié)點(diǎn)啊、
遍歷結(jié)束了、拼接好了一大堆節(jié)點(diǎn)、包一層容器
append一次就好了
相關(guān)文章:
1. node.js - gulp文件監(jiān)聽的問題2. node.js - node 客戶端socket一直報(bào)錯Error: read ECONNRESET,用php的socket沒問題哈。。3. python - 模擬滑動驗(yàn)證碼,有源碼,求解4. npm鏡像站全新上線5. mySql排序,序號6. tp6表單令牌7. 老哥們求助啊8. javascript - vue-router怎么不能實(shí)現(xiàn)跳轉(zhuǎn)呢9. html5 - angularjs中外部模版加載無法使用10. css3 - 請問一下在移動端CSS布局布局中通常需要用到哪些元素,屬性?
