Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome中的CSS延迟加载_Javascript_Jquery_Html_Css_Google Chrome - Fatal编程技术网

Javascript Chrome中的CSS延迟加载

Javascript Chrome中的CSS延迟加载,javascript,jquery,html,css,google-chrome,Javascript,Jquery,Html,Css,Google Chrome,在Chrome中延迟加载CSS时,我遇到了一些奇怪的定位问题,例如,某些元素(绝对、相对和级联)的定位有时会出现很大的偏差 基本上,我所做的是省去了通过链接标记加载样式表的标准操作,而是放置了一个占位符span标记,以便稍后在body标记的末尾有一个简单的方法来检索URL。完全加载DOM后,我用生成的链接标记替换span标记,如下所示: loadCSS: function() { var el = jQuery('.is_css'); if(!el.length) return;

在Chrome中延迟加载CSS时,我遇到了一些奇怪的定位问题,例如,某些元素(绝对、相对和级联)的定位有时会出现很大的偏差

基本上,我所做的是省去了通过链接标记加载样式表的标准操作,而是放置了一个占位符span标记,以便稍后在body标记的末尾有一个简单的方法来检索URL。完全加载DOM后,我用生成的链接标记替换span标记,如下所示:

loadCSS: function()
{
    var el = jQuery('.is_css');
    if(!el.length) return;

    // Build link element
    var linkEl = jQuery('<link />').attr({
        media: 'all',
        type: 'text/css',
        rel: 'stylesheet',
        href: el.data('src')
    });

    el.replaceWith(linkEl);
}
loadCSS:function()
{
var el=jQuery('.is_css');
如果(!el.length)返回;
//构建链接元素
var linkEl=jQuery(“”).attr({
媒体:"所有",,
键入:“text/css”,
rel:'样式表',
href:el.data('src')
});
el.替换为(linkEl);
}
我可以验证CSS是否已完全加载,因为大多数元素看起来就像我将CSS直接嵌入head标记一样。我的猜测是,在某些情况下,当加载DOM后加载CSS时,Chrome无法正确计算绝对或相对定位元素的位置

我想为您提供HTML/CSS片段,不幸的是,隔离错误呈现的元素超出了范围。因此,我要问的是,是否有人遇到过类似的问题,可能导致这种行为。也许有一些关于如何解决这些问题的一般性提示

向Sutuma致以亲切的问候

您尝试的方法可能会对性能产生很大影响。 作为一项原则,在呈现HTMLDOM之前需要加载CSS以产生效果。我猜你的html是在CSS加载之前呈现的。 以下是您可以尝试的选项: 1.加载html标题标记中的所有css 2.下载css内容后重新加载html页面。 3.您可以将html模板与(require js+require css plugin)一起用于延迟加载

,,

你是懒散地加载所有CSS还是只加载额外的块?你有没有注意到这一点:--它不再被更新或维护,但它可能会为你提供一个解决方案或基础,让你创建自己的版本。如果在加载CSS后强制重新绘制会发生什么@我能问一下你为什么这么做吗?可能是你的表现太过火了。需要注意的一点是,如果你懒洋洋地加载所有的CSS,那么页面将有一段时间完全没有样式,从用户的角度来看,这看起来不是很好。这毫无意义。