Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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
YSlow说我的JavaScript文件在合并5个文件并打包后不再被缓存_Javascript_Caching_Yslow_Packer - Fatal编程技术网

YSlow说我的JavaScript文件在合并5个文件并打包后不再被缓存

YSlow说我的JavaScript文件在合并5个文件并打包后不再被缓存,javascript,caching,yslow,packer,Javascript,Caching,Yslow,Packer,我从5个普通的人类可读的JavaScript文件开始——它们总共大约10 KB 使用后,我决定合并这5个文件,并使用Dean Edwards的打包机进行打包。现在我有一个4.5 KB的文件 当我重新运行YSlow时,它现在在“statistics”下的primed缓存中显示JavaScript文件,以前当我有单独的文件时,5个文件会被缓存 因此,我现在减少了4个HTTP请求,但预处理缓存的总页面重量增加了4.5 KB 我做错什么了吗 我仍然计划在我的JavaScript文件夹中添加一个过期日期标

我从5个普通的人类可读的JavaScript文件开始——它们总共大约10 KB

使用后,我决定合并这5个文件,并使用Dean Edwards的打包机进行打包。现在我有一个4.5 KB的文件

当我重新运行YSlow时,它现在在“statistics”下的primed缓存中显示JavaScript文件,以前当我有单独的文件时,5个文件会被缓存

因此,我现在减少了4个HTTP请求,但预处理缓存的总页面重量增加了4.5 KB

我做错什么了吗


我仍然计划在我的JavaScript文件夹中添加一个过期日期标题,这样这个问题可能会消失,但我仍然有兴趣知道为什么它不会缓存JavaScript文件。

我不认为您有任何错误,您正在遵循所有基本的最佳实践

当您从没有正确设置expires的Web服务器下载某个内容时(我假设是这样的),因为您想要修复它,primed cache将始终较高,因为YSlow认为浏览器需要下载它,即使它缓存了所有内容


这是因为缓存被设置为在其下载时过期,因为没有Expires标头。更新您的expires以获得长期有效的expires肯定会解决您的问题。

与此编程相关吗?我想这更适合serverfault。我想说这绝对是与编程相关的-我们正在讨论如何最好地在您的网站中构建您的js文件。绝对是与编程相关的!我会避免打包,只使用缩小/压缩工具,比如YUI和gzip。打包脚本可能会更快地通过网络传输,但客户机通常会支付更高的速度代价来解包,而不是下载缩小文件的额外k。我的行为与这里描述的完全相同。尽管使用fiddler,我还是意识到捆绑的css和js来自缓存。我同意这很奇怪!让我困惑的是,原来的5个文件也没有expires头,而yslow表示它们不会用预缓存再次获取。在合并成1个文件和基本打包程序之后,它希望每次都能得到js文件。我将结束这个问题-虽然行为很奇怪,但要解决这个问题,必须设置expires头,所以我接受了这个答案。谢谢