最近做的一個需求,當列表大概有5萬條數據,又不讓做成分頁,如果頁面直接渲染5萬條數據,在一些低配電腦上可能會照成頁面卡死,基於這個需求,研究分析前端渲染卡頓原因,准備手寫一個虛擬列表。 1.實現思路 列表中固定只顯示少量的數據,比如60條 在列表滾動的時候不斷的去插入刪除dom ...
lt DOCTYPE html gt lt html lang en gt lt head gt lt meta charset UTF gt lt meta name viewport content width device width, initial scale . gt lt meta http equiv X UA Compatible content ie edge gt lt t ...
2019-04-20 00:08 2 1039 推薦指數:
最近做的一個需求,當列表大概有5萬條數據,又不讓做成分頁,如果頁面直接渲染5萬條數據,在一些低配電腦上可能會照成頁面卡死,基於這個需求,研究分析前端渲染卡頓原因,准備手寫一個虛擬列表。 1.實現思路 列表中固定只顯示少量的數據,比如60條 在列表滾動的時候不斷的去插入刪除dom ...
最近做的一個需求,當列表大概有2萬條數據,又不讓做成分頁,如果頁面直接渲染2萬條數據,在一些低配電腦上可能會照成頁面卡死,基於這個需求,我們來手寫一個虛擬列表 思路 列表中固定只顯示少量的數據,比如60條 在列表滾動的時候不斷的去插入刪除dom startIndex ...
Window.requestAnimationFram() 告訴瀏覽器,你希望執行一個動畫,並且要求瀏覽器在下次重繪之前調用指定的回調函數更新動畫 具體思路: ...
window.requestAnimationFrame()告訴瀏覽器——你希望執行一個動畫,並且要求瀏覽器在下次重繪之前調用指定的回調函數更新動畫。該方法需要傳入一個回調函數作為參數,該回調函數會在 ...
第一種方法 第二種 用requestAnimationFrame 替換setTimeout 每次往ul添加元素時會發生重繪和重排 用文檔脆片去優化,最后才插入 ...
主頁面文件html Scrollbar.js文件 ...
原理:渲染大數據時,合理使用createDocumentFragment和requestAnimationFrame,將操作切分為一小段一小段執行。 documentFragment: 是一個虛擬的Dom列表,可以儲存待處理的xml片段(el元素),因為他不在真實的Dom ...
//temple部分 js部分 樣式 總結 總結: 思路很簡單: 一、 拿到所有數據應該占用的高度。比如1萬條數據,每條占40px,占用高度應為1萬*40; 二、拿到展示區域的高度,比如我想展示50條數據,展示高度即為50*40; 三、拿到屏幕滾動的距離,用滾動的距離 ...