JavaScript HTML / DOM更新被卡住,直到所有Ajax调用完成。 (在Chrome / Safari中)

时间:2019-03-25 17:02:14

标签: javascript ajax google-chrome dom safari

使用JavaScript。在基于AJAX / HTTP响应实时更新HTML-DOM-Elements的同时,我尝试调用大约50-100个HTTP / Ajax请求(循环),在Firefox中效果很好!

我面临的问题是Chrome / Safari(和Opera)在更新所有100个请求的循环之前不要更新HTML页面。 甚至“ prealoaders”之类的GIF动画也会卡住。

有任何线索吗?或小费?

我已经尝试过:

HTTP REQUEST LIBS /功能:

  • 普通JavaScript XMLHttpRequest()
  • jQuery $ .ajax()

HTML / DOM在文档加载时开始循环:

  • $(window).bind(“ load”,function()
  • document.addEventListener(“ DOMContentLoaded”,function()

编程工作流:

  • 以100次迭代开始LOOP
  • 分别启动N次更新功能。 (无循环)
  • 我还试图在循环中和调用函数时等待N毫秒。


function update_100_items_in_html_by_ajax(){

    var item_list='1,2,3,4,5,6,7,8,9,10,11,XX,YY,Z'.split(',');

    for (item_id in item_list) {
        xmlhttp=new XMLHttpRequest();
        xmlhttp.open("GET", "/item_id.php?id="+item_id, false);
        xmlhttp.send();
        if (xmlhttp.status==200) {
            document.getElementById('item_id_'+item_id).innerHTMLxmlhttp.responseText;
        };

    };

};


...,我像这样从HTML调用JavaScript ...


    document.addEventListener("DOMContentLoaded", function(){
        update_100_items_in_html_by_ajax();
    });

我正在搜索的问题...

如何不阻塞浏览器并实时更新DOM?在进行Javascript / Ajax调用时?

THX。很多。

0 个答案:

没有答案