首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在后台线程上将HTML加载到Div中?

在后台线程上将HTML加载到Div中?
EN

Stack Overflow用户
提问于 2014-03-26 13:46:04
回答 3查看 1.8K关注 0票数 1

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

代码语言:javascript
运行
复制
    var docName = name + ".html";
    $("#displayPanel").load(docName);

然后,我在控制该HTML文件的javascript文件上调用getScript,如下所示:

代码语言:javascript
运行
复制
    docName = name + ".js";
    $.getScript(docName, function( data, textStatus, jqxhr ) {

        if (textStatus==="success") {
            lightItUp(); //load method
        }
    });

它正确装载。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-26 13:50:01

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

如果您想让它像div正在后台线程上加载并在完成时接收通知一样,您可以首先使用div display:none并在回调中使其为display:block

代码语言:javascript
运行
复制
$( "#aDivInDisplayPanel" ).load( docName, function() {
  //load completed.
  $(this).fadeIn();
});
票数 1
EN

Stack Overflow用户

发布于 2014-03-26 13:50:08

您考虑过使用HTML5网络工作人员吗?

webworkers.asp

在HTML页面中执行脚本时,在脚本完成之前,页面会变得没有响应。 worker是一个在后台运行的JavaScript,独立于其他脚本,不影响页面的性能。你可以继续做任何你想做的事情:点击,选择,等等,而网络工作者在后台运行。

票数 1
EN

Stack Overflow用户

发布于 2014-03-26 14:07:06

除非您以某种方式实现AJAX同步,否则上述代码无法阻止UI,除非浏览器需要很长时间来处理HTML (IE6.6可能需要1-2分钟来解析以这种方式加载的HTML ),或者lightItUp()中有些东西需要很长时间才能完成。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22662916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档