Javascript 是否将HTML加载到后台线程上的Div中?

Javascript 是否将HTML加载到后台线程上的Div中?,javascript,jquery,html,multithreading,Javascript,Jquery,Html,Multithreading,我正在使用以下方法将外部HTML文件加载到DIV中: var docName = name + ".html"; $("#displayPanel").load(docName); 然后我在控制HTML文件的javascript文件上调用getScript,如下所示: docName = name + ".js"; $.getScript(docName, function( data, textStatus, jqxhr ) { if (te

我正在使用以下方法将外部HTML文件加载到DIV中:

    var docName = name + ".html";
    $("#displayPanel").load(docName);
然后我在控制HTML文件的javascript文件上调用getScript,如下所示:

    docName = name + ".js";
    $.getScript(docName, function( data, textStatus, jqxhr ) {

        if (textStatus==="success") {
            lightItUp(); //load method
        }
    });
它加载正确


问题在于,对于大型HTML/JS文件,DOM将被冻结,用户交互将被禁用,直到加载完成。是否可以将div加载放在“后台线程”上并接收完成通知

不确定我是否正确理解了你的问题

如果要使div在后台线程上加载并在完成时收到notif,可以先让div
显示:none
,然后在回调中使其
显示:block

$( "#aDivInDisplayPanel" ).load( docName, function() {
  //load completed.
  $(this).fadeIn();
});

你考虑过使用HTML5网络工作者吗

在HTML页面中执行脚本时,该页面将变得无响应 直到脚本完成

web worker是在后台运行的JavaScript, 独立于其他脚本,而不影响 这一页。你可以继续做任何你想做的事情:点击, 当web worker在后台运行时,选择内容等


除非您以某种方式使AJAX同步,否则上述代码无法阻止UI,除非浏览器需要很长时间来处理HTML(IE 6.6可能需要1-2分钟来解析以这种方式加载的HTML),或者您在
lightItUp()
中有需要很长时间的内容


下一步是启动浏览器的性能工具并检查时间。您在上面发布的代码看起来是正确的,不应该引起您所描述的问题。

听起来像是一份工作。您可以让Web工作者解析HTML,然后使用messages将HTML批量注入父Web页面。我认为jQuery.getScript()是异步的,并在“后台线程”中加载脚本。您是将全局ajax设置为同步还是什么
$.getScript()
不应该冻结UI,问题似乎来自
lightItUp()
,或者更明显的是,您误解了所看到的行为。顺便说一句,您不需要检查
textStatus
,您已经在成功回调中设置了代码。编辑:我不确定您对
textStatus
check的期望是什么感谢您的帮助-->lightItUp()方法是瓶颈。我将隐藏/淡入UI,使其看起来加载更快,即使屏幕上的其他元素没有响应(例如按钮上的悬停更改)。在iOS开发中,有可能将整个方法放在“后台线程”上,直到它们完成为止(发送通知),我很好奇web语言是否可以这样做。仅供参考,链接到W3Schools通常是不受欢迎的,原因有几个:-你应该链接到一个更知名的来源,比如MDN:我接受你的观点。HTML5 Rocks怎么样:这也是一个很好的资源,尽管作为一个博客信息很快就会过时。