首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在应用js和css之前,使用ajax服务调用获取的HTML会被扭曲一段时间。

在应用js和css之前,使用ajax服务调用获取的HTML会被扭曲一段时间。
EN

Stack Overflow用户
提问于 2016-10-08 09:32:12
回答 2查看 93关注 0票数 0

我正在使用ajax进行服务调用,并在页面上加载HTML内容。这个HTML有内容、一些外部脚本调用和内部的css。但是当这个HTML被加载时,它会被扭曲一段时间(3-4秒),然后js和css被应用到HTML中。有什么解决方案可以让我用js和css获得HTML,然后把它附加到div中或者我想放的地方。

代码语言:javascript
复制
            $.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);
                }
            }); 
EN

回答 2

Stack Overflow用户

发布于 2016-10-08 09:50:29

为了避免这种情况,您可以在主文档中加载css和javascripts。

在任何情况下,出于任何原因,如果您不希望在主文档中的ajax调用之前加载它们(例如,为了增强第一个页面的加载),可以使用嵌套的ajax调用,如下所示:

代码语言:javascript
复制
   $.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
   });
票数 0
EN

Stack Overflow用户

发布于 2016-10-08 09:39:44

当使用html()innerHTML=时,您只将代码写入站点。然后,解释器必须理解这一点,这会导致延迟。相反,您可以将内容应用为DOM,方法是不将其作为文本/平原传递,或者创建一个documentFragment first document.createDocumentFragment(),这就像一个空节点,您可以将子节点追加到其中,然后将该片段追加到主DOM中。

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

https://stackoverflow.com/questions/39930824

复制
相关文章

相似问题

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