我使用当前正在处理的应用程序多次遇到过这种情况。
我想在页面中实现一大块新CSS。我有两个选择:
答案 0 :(得分:1)
取决于你要添加什么样的新CSS,但一般来说我会选择方案#2。我喜欢使用CDN作为框架CSS文件,然后使用我的域来托管网站主题CSS和页面特定的CSS文件。利用并行下载。
<!-- 1 http request to CDN for main framework, gets cached -->
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/foundation/5.5.3/css/foundation.min.css"/>
<!-- 1 http request to mydomain.com for main theme, gets cached -->
<link rel="stylesheet" href="http://domain.com/css/themes/modern.min.css"/>
<!-- 1 http request to mydomain.com for page-specific styles -->
<link rel="stylesheet" href="http://domain.com/css/pages/product-detail.css"/>
答案 1 :(得分:0)
取决于传输速率
一般来说,将CSS包含在<head>
而不是单独的文件中要好得多。
当CSS处于头脑中时,浏览器在获取HTML之前拥有所有CSS。这样,即使在基本HTML <body>
完成加载之前,浏览器也可以开始呈现页面。
如果传输速率太慢并且CSS需要很长时间才能到达浏览器,则可能需要单独的文件。
如果CSS传输时间大于HTTP请求连接时间,那么何时开始查看单独的CSS文件。
如果CDN尚未用于其他内容,则使用CDN将添加另一个DNS查找。
还要确保gzip已打开。
如果缓存HTML页面,#1
不会使缓存失效。
缓存对第一次访问者没有任何作用,如果页面需要很长时间加载,则第一次访问者可能永远不会成为访问者。