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