如何在不更改文件的情况下将缩小的Javascript文件部署到web服务器's时间戳
How to deploy minified Javascript files to a web server without changing the file's Timestamp?
我们的应用程序中有数百个javascript文件,目前正在提供未压缩的服务。我们获得更多客户端性能的解决方案之一是缩小我们的javascript文件。我已经创建了一个自动化的解决方案来在构建时做到这一点,然而,当部署这些新文件时,决定是否将其重新发送到客户端的文件的时间戳将发生更改。这意味着,在未来的每个版本中,所有javascript文件都将有一个新的时间戳。我们的客户端将再次重新下载所有缩小的javascript文件,从而打破缩小的性能方面。
这是其他人遇到过的问题吗?你的解决方案是什么?您的项目中是否使用了单独的未缩小和缩小的javascript文件,并且不在构建中执行缩小?
我们还有其他解决方案(比如只在源代码管理存储库中查找实际更改的文件),但这是我想了解其他人在做什么的一个问题。
您必须确定哪些文件实际发生了更改。或者不用担心,享受缩小文件带来的改进。无论如何,客户端可能不会将文件保存在缓存中很长时间,因此,除非您非常频繁地更新文件,否则尝试管理缓存行为可能收效甚微。
您可以编写一个脚本,检查源文件夹和目标文件夹中每个文件的CRC或MD5哈希,并且只有在文件发生更改时才执行覆盖。这将保留未更改的文件的时间戳,为您提供所需的缓存行为。
类似地,您可以记录以前的时间戳,进行覆盖,然后使用touch命令(假设这些文件在unix系统上)将时间戳设置回其原始值。
第一个选项可能更好,而不是一直盲目地将时间戳设置为相同的值,因为这可能意味着一些客户端在一段时间内不会收到修改过的JS文件,因为服务器声称它没有更改。
您可以在一段时间内推出这些脚本文件,这样单个用户请求都不会花费过长的时间。但说真的,我们谈论的javascript有多少?一次性重新下载与您的页面相关的脚本真的有那么重要吗?想一想你要付出多少努力才能完成这项工作,并将其与收益进行权衡。
阅读http://www.thinkvitamin.com/features/webapps/serving-javascript-fast以Flickr闻名的Cal Henderson。希望你会发现它有用。
- jQuery blueimp文件上传:将N-1个文件上传到IE中的服务器
- 将JQuery Handontable保存到服务器上的excel文件中
- 正在使用Dropzone.js删除服务器上已重命名的文件
- Angular JS文件上传到托管服务器
- 从安卓设备将图像上传到服务器时,文件扩展名错误
- node.js将字符串转换为要上传到Web服务器的文件
- 在浏览器中打开文本文件-服务器上出现错误
- 如何从 Node.js 访问、检索、存储和删除文件到远程文件服务器中
- 从文件服务器读取 XML 文件
- 如何从文件服务器下载文件
- 如何使用JQUERY使用AJAX将Javascript变量(从客户端)发布到PHP文件(服务器端)
- 学习node文件服务器为什么将createReadStream()放入createServer()中
- NodeJs中的静态HTTP文件服务器:有时外部.js和.css文件加载正常,有时加载不正常;t
- 使用ExpressJS保护静态文件服务器
- 如何将json对象保存为文件服务器端
- 学习younode教程#11 HTTP文件服务器
- 仅由文件服务器支持的浏览器应用程序中的数据
- http.文件服务器响应的mime "Content-Type"错误
- 在dropzone.js中分配文件服务器id
- 通过JavaScript上传文件:服务器上的文件无效