更新:最终这已经成为一个问题。我们创建了代理,通过与js文件相同的域从blob提供主题css文件。
我正在开发一个themeswitcher模块,该模块使用document.stylesheets对象来获取有关某些样式表中的css规则的信息。
该网站托管在azure上,css文件存储在blob上。
由于缺乏对blob中跨域资源共享的支持,因此无法访问样式表。
解决方法是将整个css文件注入html页面的head部分。
这是否会通过膨胀页面显着影响性能?
编辑:
正如下面提到的那样,有两个因素:第一个是外部css文件的缓存,这导致更快的重新加载时间。 第二个是http请求的数量 - 如果css在页面中,它会变少:尽管如果文件已经被缓存 - 无论如何都没有请求它们重新加载。
我试图了解除了这些因素之外,是否通过在标题部分添加大约3-5个样式标记(每个标记为100-300个css规则)来使html页面更大,导致脚本在页面,因为HTML字符串本身更长?
答案 0 :(得分:2)
如果它在页面中,则加载更长,因为第二次加载时css 不已经在浏览器的缓存中。
答案 1 :(得分:1)
这取决于不同的因素。例如 - 您的css有多大以及您的用户从哪里进入您的网站。如果您的目标受众是 - 移动用户,则每增加一kb数据可能会显着影响性能并降低您的负面用户体验。另一方面,每个外部样式表都是一个http请求,可能会影响性能。所以这取决于你的具体情况