我用下面的方法加载外部HTML文件到一个DIV:在后台线程中将HTML加载到Div中?
var docName = name + ".html";
$("#displayPanel").load(docName);
然后我打电话getScript加入的JavaScript文件控制的是HTML文件,像这样:
docName = name + ".js";
$.getScript(docName, function(data, textStatus, jqxhr) {
if (textStatus==="success") {
lightItUp(); //load method
}
});
它加载正确。
问题是,对于大型HTML/JS文件,DOM被冻结,用户交互被禁用,直到加载完成。是否有可能将div加载到“后台线程”并收到完成通知?
听起来像[Web Worker]的工作(https://developer.mozilla.org/en-US/docs/Web/Guide/Performance/Using_web_workers)。您可以让Web Worker解析HTML,然后使用消息批量将HTML注入父网页 – CodingIntrigue
我相信jQuery.getScript()是异步的,并在“后台线程”中加载脚本。 – blue
你是否设置全局ajax同步或什么? '.getScript()'不应该冻结用户界面,看起来问题来自'lightItUp()'而不是显然你错误地解释了你看到的行为。顺便说一句,你不需要检查'textStatus',你已经在成功回调中设置了代码。编辑:我不知道你期望有关'textStatus'检查 –