Javascript 在应用js和css之前,使用ajax服务调用获取的HTML已经被扭曲了一段时间
我正在使用ajax进行服务调用,并在页面上加载HTML内容此HTML包含内容、一些外部脚本调用和内部css。但是当这个HTML被加载时,它会被扭曲一段时间(3-4秒),然后js和css被应用到HTML中。有没有什么解决方案可以让我应用js和css的HTML,然后将其附加到我的div中或我想放在哪里Javascript 在应用js和css之前,使用ajax服务调用获取的HTML已经被扭曲了一段时间,javascript,jquery,html,css,ajax,Javascript,Jquery,Html,Css,Ajax,我正在使用ajax进行服务调用,并在页面上加载HTML内容此HTML包含内容、一些外部脚本调用和内部css。但是当这个HTML被加载时,它会被扭曲一段时间(3-4秒),然后js和css被应用到HTML中。有没有什么解决方案可以让我应用js和css的HTML,然后将其附加到我的div中或我想放在哪里 $.ajax({ type: 'POST', url: service-URL,
$.ajax({
type: 'POST',
url: service-URL,
crossDomain : _crossDomain,
contentType : 'text/plain',
data:JSON.stringify(objReq),
error:function (xhr, ajaxOptions, thrownError){
},
success: function(outputHTML){
$("#contentDiv").html(outputHTML);
}
});
当使用html()
或innerHTML=
时,您只将代码写入站点。口译员随后必须理解这一点,这会导致延迟。
相反,您可以将内容作为DOM应用,方法是不将其作为文本/纯文本传递,或者首先创建documentFragment
document.createDocumentFragment()
,它类似于可以将子节点附加到的空节点,然后将该片段附加到主DOM。为了避免这种情况,您可以在主文档中加载css和Java脚本
在任何情况下,出于任何原因,如果您不想在主文档中的ajax调用之前加载它们(例如,为了加快第一页加载),您可以使用
嵌套的ajax调用如下:
$.get(resource.url, {cache:true}, function(css) {
//cache : true will handle browser cache , it will load instantly:
$("head").append($("<link>",{
rel: "stylesheet",
type: "text/css",
href: resource.url
}));
}).then(function(){
//You can now call your AJAX here
});
$.get(resource.url,{cache:true},函数(css){
//缓存:true将处理浏览器缓存,它将立即加载:
$(“标题”)。附加($(“”){
rel:“样式表”,
键入:“文本/css”,
href:resource.url
}));
}).然后(函数(){
//现在可以在这里调用AJAX
});
试试$(“#contentDiv”).empty().html(outputHTML)代码>尝试加载依赖项或在初始页面加载时加载它们..empty()将清空该div的内容。应用js和css将如何帮助呈现HTML。@itzmukeshy7如何配置要求js从我从服务获取的HTML加载外部js调用。您不能像设置普通节点那样设置文档片段的innerHTML,这就是问题所在。@ps007但您以前可以将其解析为DOM。我可以附加响应,即文档。但问题是获取响应并将其放入目标div@ps007为什么不尝试以html的形式接收内容呢?你有没有试过像Mild建议的那样预加载css和脚本?@ps007你应该等待脚本和css加载。加上米拉德的解决方案,应该会有所帮助。我想,你可以用onlaod
来实现这一点,但最好先查一下。