最近做的一個需求,當列表大概有5萬條數據,又不讓做成分頁,如果頁面直接渲染5萬條數據,在一些低配電腦上可能會照成頁面卡死,基於這個需求,研究分析前端渲染卡頓原因,准備手寫一個虛擬列表。 1.實現思路 列表中固定只顯示少量的數據,比如60條 在列表滾動的時候不斷的去插入刪除dom ...
最近做的一個需求,當列表大概有 萬條數據,又不讓做成分頁,如果頁面直接渲染 萬條數據,在一些低配電腦上可能會照成頁面卡死,基於這個需求,我們來手寫一個虛擬列表 思路 列表中固定只顯示少量的數據,比如 條 在列表滾動的時候不斷的去插入刪除dom startIndex endIndex,不斷的改變這個值來獲取最新的顯示列表 paddingTop paddingBottom撐開容器的滾動區域 首先看一下 ...
2019-09-30 18:35 1 2622 推薦指數:
最近做的一個需求,當列表大概有5萬條數據,又不讓做成分頁,如果頁面直接渲染5萬條數據,在一些低配電腦上可能會照成頁面卡死,基於這個需求,研究分析前端渲染卡頓原因,准備手寫一個虛擬列表。 1.實現思路 列表中固定只顯示少量的數據,比如60條 在列表滾動的時候不斷的去插入刪除dom ...
//temple部分 js部分 樣式 總結 總結: 思路很簡單: 一、 拿到所有數據應該占用的高度。比如1萬條數據,每條占40px,占用高度應為1萬*40; 二、拿到展示區域的高度,比如我想展示50條數據,展示高度即為50*40; 三、拿到屏幕滾動的距離,用滾動的距離 ...
https://blog.csdn.net/wu1737149371/article/details/88329830 ...
關鍵點:不卡頓,交互流暢 一、最傳統、最簡單粗暴的方式 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport ...
window.requestAnimationFrame()告訴瀏覽器——你希望執行一個動畫,並且要求瀏覽器在下次重繪之前調用指定的回調函數更新動畫。該方法需要傳入一個回調函數作為參數,該回調函數會在 ...
主頁面文件html Scrollbar.js文件 ...
原理:渲染大數據時,合理使用createDocumentFragment和requestAnimationFrame,將操作切分為一小段一小段執行。 documentFragment: 是一個虛擬的Dom列表,可以儲存待處理的xml片段(el元素),因為他不在真實的Dom ...
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <me ...