javascript - 如何優(yōu)化jquery循環(huán)append操作?
問題描述
項目里有一個頁面展示功能,需要在指定的class所屬的標(biāo)簽里添加canvas標(biāo)簽,因為有查詢功能,所以要根據(jù)查詢的數(shù)據(jù)量不同來添加相應(yīng)數(shù)量的canvas標(biāo)簽,我現(xiàn)在是用循環(huán)操作,先隱藏指定的class標(biāo)簽,每次循環(huán)都用append添加到指定的class的標(biāo)簽里,循環(huán)完后再顯示那個隱藏的class標(biāo)簽。這樣數(shù)據(jù)量小的時候頁面渲染的時間還算正常,一秒就可以了,但是只要數(shù)據(jù)量一大,差不多300條以上,就要幾秒的時間才能渲染完,500條數(shù)據(jù)就要5秒左右,上千條就要十多秒了。因為我是用thinkphp框架,一開始是想先把canvas標(biāo)簽寫到html頁面里后面再用Js去修改css樣式,但是因為canvas標(biāo)簽要用id來操作,而我需要添加很多canvas標(biāo)簽,id又不能重復(fù),所以選擇用js動態(tài)添加的方式。想請教大神們有沒有其他思路來解決這個問題?(ps:我不會vue或者react這種框架,要換這些的話還得從頭學(xué)起,暫時不考慮前端方面用這些重做)
問題解答
回答1:自己相當(dāng)于構(gòu)建了虛擬節(jié)點啊、
遍歷結(jié)束了、拼接好了一大堆節(jié)點、包一層容器
append一次就好了
相關(guān)文章:
1. 在mac下出現(xiàn)了兩個docker環(huán)境2. 如何解決docker宿主機(jī)無法訪問容器中的服務(wù)?3. HTML5不支持frameset一般怎么解決?4. javascript - Vue v-for判斷是否為第4列,然后加個橫線或者第4行才顯示這一個<li>5. javascript - react native在run-android時出現(xiàn)這個錯誤該怎么解決?大神賜教6. javascript - 如何獲取點擊事件點擊后前一個后一個的值。7. css3像卷軸一樣展開8. docker 下面創(chuàng)建的IMAGE 他們的 ID 一樣?這個是怎么回事????9. css - 為何box的顏色沒有變?10. css - C#與java開發(fā)Windows程序哪個好?
