javascript - 如何優(yōu)化jquery循環(huán)append操作?
問(wèn)題描述
項(xiàng)目里有一個(gè)頁(yè)面展示功能,需要在指定的class所屬的標(biāo)簽里添加canvas標(biāo)簽,因?yàn)橛胁樵?xún)功能,所以要根據(jù)查詢(xún)的數(shù)據(jù)量不同來(lái)添加相應(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í)候頁(yè)面渲染的時(shí)間還算正常,一秒就可以了,但是只要數(shù)據(jù)量一大,差不多300條以上,就要幾秒的時(shí)間才能渲染完,500條數(shù)據(jù)就要5秒左右,上千條就要十多秒了。因?yàn)槲沂怯胻hinkphp框架,一開(kāi)始是想先把canvas標(biāo)簽寫(xiě)到html頁(yè)面里后面再用Js去修改css樣式,但是因?yàn)閏anvas標(biāo)簽要用id來(lái)操作,而我需要添加很多canvas標(biāo)簽,id又不能重復(fù),所以選擇用js動(dòng)態(tài)添加的方式。想請(qǐng)教大神們有沒(méi)有其他思路來(lái)解決這個(gè)問(wèn)題?(ps:我不會(huì)vue或者react這種框架,要換這些的話(huà)還得從頭學(xué)起,暫時(shí)不考慮前端方面用這些重做)
問(wèn)題解答
回答1:自己相當(dāng)于構(gòu)建了虛擬節(jié)點(diǎn)啊、
遍歷結(jié)束了、拼接好了一大堆節(jié)點(diǎn)、包一層容器
append一次就好了
相關(guān)文章:
1. javascript - npm下載的模塊不完整是什么問(wèn)題?2. java - Spring事務(wù)回滾問(wèn)題3. 正兒八經(jīng)地請(qǐng)教天蓬老師4. mysql優(yōu)化 - 關(guān)于mysql分區(qū)5. node.js - 我想讓最后進(jìn)入數(shù)據(jù)庫(kù)的數(shù)據(jù),在前臺(tái)最先展示,如何做到?6. MySQL數(shù)據(jù)庫(kù)服務(wù)器循環(huán)插入執(zhí)行速度慢7. 求解改變某值8. python 操作mysql如何經(jīng)量防止自己的程序在之后被惡意注入(說(shuō)白了就是問(wèn)一下python防注入的一些要點(diǎn))9. django進(jìn)行數(shù)據(jù)庫(kù)的查詢(xún)10. 剛放到服務(wù)器的項(xiàng)目出現(xiàn)這中錯(cuò)誤,有高手指點(diǎn)嗎
