javascript – 当连接大文档时,UI响应太慢

前端之家收集整理的这篇文章主要介绍了javascript – 当连接大文档时,UI响应太慢前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个引导选项卡控件,这很好.在每个选项卡上,我需要加载一个html文档(大可能大于10MB).一切都很好但在加载数据后,UI响应太慢,即使需要5,6秒来切换选项卡.
点击时不需要任何延迟. UI应该每次都响应.
我有什么办法实现吗?
这是我迄今为止所做的
  1. <div class="row">
  2. <div class="col-md-12">
  3. <ul class="nav nav-tabs" id="myTabs">
  4. <li class="active"><a href="#home" data-toggle="tab">Home</a></li>
  5. <li><a href="#dpa" data-toggle="tab">DPA</a></li>
  6. <li><a href="#rn" data-toggle="tab">Antwon</a></li>
  7. </ul>
  8.  
  9. <div class="tab-content" style="width:100%;height:600px;">
  10. <div class="tab-pane active" id="home">
  11. <p>test</p>
  12. </div>
  13. <div class="tab-pane" id="dpa" src="../TabsData/data2.htm">
  14. <iframe src="" style="width:100%;height:600px"></iframe>
  15. <div id="data"></div>
  16. </div>
  17. <div class="tab-pane" id="rn" src="../TabsData/data2.htm">
  18. <iframe src="" style="width:100%;height:600px"></iframe>
  19. <div id="data"></div>
  20. </div>
  21. </div>
  22. </div>
  23. </div>

// Javascript代码

  1. $('#myTabs').bind('shown.bs.tab',function (e) {
  2. paneID = $(e.target).attr('href');
  3. src = $(paneID).attr('data-src');
  4. // if the iframe hasn't already been loaded once
  5. if ($(paneID + " iframe").attr("src") == "") {
  6. $(paneID + " iframe").attr("src",src);
  7. }
  8. });

注意:好的,它应该缓慢加载,因为它有大的数据要加载.但为什么一旦一切都被加载,为什么会慢?

解决方法

关于Javascript的是它是单线程的.所以当你尝试这个大的操作时,它会阻止其他的浏览器事件,直到这个操作完成.然而,JavaScript中最近有一些开发允许多线程进程.

选项1 – 网络工作者

查看并利用Web Workers来抵消流程,使其不影响UI的响应.

选项2 – AJAX

使用AJAX加载您的HTML,以便该进程是异步的.这样,浏览器可以在后台加载而不影响您的UI.

  1. $("#yourDiv").load("demo_test.html");

两者都将解决您的UI问题,因为它正确地将浏览器资源分配给“另一个线程”.

猜你在找的JavaScript相关文章