javascript - 如何優(yōu)化jquery循環(huán)append操作?
問(wèn)題描述
項(xiàng)目里有一個(gè)頁(yè)面展示功能,需要在指定的class所屬的標(biāo)簽里添加canvas標(biāo)簽,因?yàn)橛胁樵児δ埽砸鶕?jù)查詢的數(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這種框架,要換這些的話還得從頭學(xué)起,暫時(shí)不考慮前端方面用這些重做)
問(wèn)題解答
回答1:自己相當(dāng)于構(gòu)建了虛擬節(jié)點(diǎn)啊、
遍歷結(jié)束了、拼接好了一大堆節(jié)點(diǎn)、包一層容器
append一次就好了
相關(guān)文章:
1. android - 用textview顯示html時(shí)如何寫(xiě)imagegetter獲取網(wǎng)絡(luò)圖片2. javascript - table列過(guò)多,有什么插件可以提供列排序和選擇顯示列的功能3. showpassword里的this 是什么意思?代表哪個(gè)元素4. javascript - windows下如何使用babel,遇到了困惑5. JavaScript事件6. python - 為什么正常輸出中文沒(méi)有亂碼,zip函數(shù)之后出現(xiàn)中文編程unicode編碼的問(wèn)題,我是遍歷輸出的啊。7. javascript - js中向下取整8. android - rxjava多線程并發(fā)怎么控制順序9. 對(duì)mysql某個(gè)字段監(jiān)控的功能10. html - vue項(xiàng)目中用到了elementUI問(wèn)題
