我还没有一个很大的机会来研究这个主题,但我想我会问这个问题,看看我们是否可以在这里创建一个关于这个主题的知识库。
1)使用子域将强制客户端缓存,这是默认的还是客户端禁用它的简单方法?更好奇的是,我希望影响的用户比例是多少。
2)将缓存哪些内容?图像?样式表?Flash SWF?Javascripts?所有的?
3)我记得我读到过,你必须在你的URL中使用子域或www才能工作,这是正确的吗?(这是否意味着不允许这样做?)
我计划最终将其集成到我所有的网站上,但首先我将尝试为flash游戏网站网络做这件事,所以我认为网站的样式将保持不变,但不使用www.example.com /www.example.com,www.example.com/javascript和www.example.com/swfs,我只会创建指向它们的子域(img.example.com,css.example.com,js.example.com和swf.example.com分别) --这是最好的做法吗?
发布于 2009-02-04 18:51:35
使用subdomains for content elements并不是为了强制缓存,而是为了欺骗浏览器打开更多的连接。这可以加快页面加载时间。
这些元素的缓存完全位于与该内容一起提供的HTTP标头下面。
对于静态文件,如CSS、JS等,服务器通常会告诉客户端文件被修改的时间,这允许浏览器请求文件"If-Modified-Since“该时间戳。如何通过添加一些额外的缓存头来改进这一点的细节将取决于您使用的use服务器。例如,对于Apache,您可以使用mod_expires模块来设置Expires头,或者使用Header指令来输出其他类型的缓存控制头。
例如,如果您有一个包含css文件的子目录,并且希望确保它们被缓存至少一个小时,那么您可以在该目录中放置一个包含这些内容的.htaccess
ExpiresActive On
ExpiresDefault "access plus 1 hours"发布于 2009-02-04 19:17:15
查看YSlow的文档。YSlow是Firebug的一个插件,一个令人惊叹的Firefox web开发插件。有许多关于加速页面加载的好信息,其中之一是使用一个或多个子域来鼓励浏览器进行更多的并行对象加载。
我在两个Django站点上做的一件事是使用自定义模板标记创建指向图像、css等的伪路径。该路径包含上次修改时间作为伪目录。此路径组件被Apache .htaccess mod_rewrite规则剥离。然后,该对象被赋予10年的生存时间(ExpiresDefault“现在加上10年”),因此浏览器只会加载它一次。如果对象更改,伪路径也会更改,浏览器将获取更新后的对象。
https://stackoverflow.com/questions/512732
复制相似问题