一般頁面1000條數(shù)據(jù)的正常渲染我們可能用的比較多的是分頁,但是在不做分頁的前提下怎么實現(xiàn)長列表的渲染效率,就是怎么做到不卡頓富弦?
可能我們會監(jiān)聽高度沟娱,滾動條什么的去做滾動分頁氛驮,我沒試過,但是我覺得應該是可以實現(xiàn)的济似,就跟手機端的上劃加載更多一樣的處理邏輯吧矫废。
實現(xiàn)機制:
從第10個開始,這些沒在可視區(qū)的元素就沒有被渲染砰蠢,這可比上面那種全部元素都渲染好太多了蓖扑,但是如果瀏覽器不渲染頁面內(nèi)的一些元素,滾動將是一場噩夢台舱,因為無法正確計算頁面高度律杠。這是因為潭流,content-visibility會將分配給它的元素的高度(height)視為0,瀏覽器在渲染之前會將這個元素的高度變?yōu)?柜去,從而使我們的頁面高度和滾動變得混亂灰嫉。
具體原因可參照:https://juejin.cn/post/7168629736838463525
實現(xiàn)方案:
.list_item {
content-visibility: auto;
contain-intrinsic-size: 200px; // 高度接近真實渲染的值效果會更好,如果實在無法知道準確高度嗓奢,我們就給一個大概的值讼撒,會使?jié)L動條的抖動問題相對減少。
}
如果不加size高度股耽,在滾動過程中根盒,滾動條會抽搐一樣的抽抽。高度的值最好更加貼近item的高度物蝙,效果更好炎滞。