Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更新大量的数字_Javascript_Performance_Websocket - Fatal编程技术网

Javascript 更新大量的数字

Javascript 更新大量的数字,javascript,performance,websocket,Javascript,Performance,Websocket,网页从websocket高速接收超过500个数字的字符串。 就资源而言,在页面上按列显示这些数字的最有效方式是什么 到目前为止,我尝试了两种不同的方法: 创建在for循环中使用.innerHTML更新的span元素的静态列表。在页面加载时,在init函数中调用函数getElementsByTagName,以获取for循环中使用的数组中的span元素来更新它们 在for循环中使用Jquery append()在段落元素中追加数字,其中数字已与标记br(eak)连接,以便创建列。在循环之前,函数em

网页从websocket高速接收超过500个数字的字符串。 就资源而言,在页面上按列显示这些数字的最有效方式是什么

到目前为止,我尝试了两种不同的方法:

  • 创建在for循环中使用.innerHTML更新的span元素的静态列表。在页面加载时,在init函数中调用函数getElementsByTagName,以获取for循环中使用的数组中的span元素来更新它们
  • 在for循环中使用Jquery append()在段落元素中追加数字,其中数字已与标记br(eak)连接,以便创建列。在循环之前,函数emtpy()用于删除段落中的所有旧编号

  • 这样做能更有效吗?因此,浏览器的CPU负载会减少。

    不要对循环中当前DOM中的元素进行追加或innerHTML修改


    创建或修改不在页面上的元素,然后一次性替换或追加新元素。这将减少页面重画的次数,并应尽量减少计算机上的压力。

    创建
    文档片段
    ()

    将所有列表元素追加到文档片段中。这不会触发对文档的重画,因为片段不是DOM的一部分

    然后,从DOM中删除现有列表,并附加片段。这一切一次完成,只会导致一次重画。有关更多信息,请参阅链接资源