当前位置: 移动技术网 > IT编程>开发语言>JavaScript > 面试题:js如何渲染十万条数据并不卡住界面

面试题:js如何渲染十万条数据并不卡住界面

2019年03月31日  | 移动技术网IT编程  | 我要评论

这道题考察了如何在不卡住页面的情况下渲染数据,也就是说不能一次性将几万条都渲染出来,而应该一次渲染部分 dom,那么就可以通过 requestanimationframe 来每 16 ms 刷新一次。

代码如下:

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>js如何渲染十万条数据并不卡住界面</title>
</head>
<body>
    <ul>控件</ul>
</body>
</html>
settimeout(() => {
    let data = 100000;
    let once = 20;
    let num = data/once;
    let currentindex = 0;
    let ul = document.queryselector('ul');
    let frameagent = document.createdocumentfragment();
    function add(){
        for (var i = 0; i < once; i++) {
            let li = document.createelement('li');
            li.innertext = math.floor(math.random() * data);
            frameagent.appendchild(li);
        }
        currentindex += 1;
        ul.appendchild(frameagent);
        loop();
    }
    function loop(){
        if(currentindex < num){
            window.requestanimationframe(add);
        }
    }
    loop();
},0)

本题来自于网络,所有权归其作者。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网