我们目前正在进行私人测试,因此仍然在进行相当快速的更改,尽管显然随着使用量开始增加,我们将放慢这一过程.话虽这么说,我们遇到的一个问题是,在我们用新的JavaScript文件推出更新之后,客户端浏览器仍然使用文件的缓存版本,但他们看不到更新.显然,在支持调用上,我们可以简单地通知他们进行ctrlF5刷新以确保他们从服务器获取最新文件,但最好在此之前处理它.
我们当前的想法是简单地将版本号附加到JavaScript文件的名称上,然后在进行更改时,增加脚本上的版本并更新所有引用.这绝对可以完成工作,但更新每个版本的引用可能会变得很麻烦.
我确信我们不是第一个处理这个问题的人,我想我会把它扔给社区.在更新代码时,如何确保客户更新缓存?如果您使用上述方法,您是否正在使用简化更改的流程?
我正在访问我的网站上的链接,每次访问时都会提供一个新图像.
我遇到的问题是,如果我尝试在后台加载图像然后更新页面上的图像,图像不会改变 - 虽然它在我重新加载页面时更新.
var newImage = new Image();
newImage.src = "http://localhost/image.jpg";
function updateImage()
{
if(newImage.complete) {
document.getElementById("theText").src = newImage.src;
newImage = new Image();
number++;
newImage.src = "http://localhost/image/id/image.jpg?time=" + new Date();
}
setTimeout(updateImage, 1000);
}
Run Code Online (Sandbox Code Playgroud)
FireFox看到它们的标题:
HTTP/1.x 200 OK
Cache-Control: no-cache, must-revalidate
Pragma: no-cache
Transfer-Encoding: chunked
Content-Type: image/jpeg
Expires: Fri, 30 Oct 1998 14:19:41 GMT
Server: Microsoft-HTTPAPI/1.0
Date: Thu, 02 Jul 2009 23:06:04 GMT
Run Code Online (Sandbox Code Playgroud)
我需要在页面上强制刷新该图像.有任何想法吗?
如何使用JavaScript清除浏览器缓存?
我们部署了最新的JavaScript代码,但我们无法获取最新的JavaScript代码.
编者注:这个问题在以下几个地方是半复制的,下面第一个问题的答案可能是最好的.这个已接受的答案不再是理想的解决方案.
我有一个简单的HTML:
<html>
<body>
<head>
<meta charset="utf-8">
<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>
<script src="test.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在test.js中我更改了Javascript函数,但我的浏览器正在缓存此文件.如何禁用脚本src的缓存?
更新:如何使用javascript添加随机脚本?
我正在通过XAMPP开发一个基于Wordpress源代码的网站.有时我更改CSS代码,scrips或其他东西,我注意到我的浏览器需要时间来应用修改.这导致我使用多个浏览器刷新一个,如果不应用新样式我尝试第二个,它总是这样.
有一些方法可以避免这个问题吗?有时我在更改代码而不通知以前的修改.
对于我的网站,我有以下htaccess规则:
# BEGIN Gzip
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
</IfModule>
# END Gzip
# BEGIN EXPIRES
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 10 days"
ExpiresByType text/css "access plus 1 month"
ExpiresByType text/plain "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType application/x-javascript "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType application/x-icon "access plus 1 year"
</IfModule> …Run Code Online (Sandbox Code Playgroud) 是否有可能强制浏览器刷新缓存的CSS?
这并不像每个请求那么简单.我们有一个网站已经有一段时间稳定的CSS.
现在我们需要对CSS进行一些重大更新; 但是,缓存CSS的浏览器将在几天内不会收到新的CSS,从而导致渲染问题.
有没有办法强制刷新CSS或者我们最好只选择版本特定的CSS URL?
我们正在积极开发一个使用.Net和MVC的网站,我们的测试人员正在试图获得最新的测试内容.每次我们修改样式表或外部javascript文件时,测试人员都需要进行硬刷新(IE中的ctrl + F5)才能看到最新的东西.
我是否有可能强制他们的浏览器获取这些文件的最新版本而不是依赖于他们的缓存版本?我们没有从IIS或任何东西做任何特殊的缓存.
一旦投入生产,很难告诉客户他们需要硬刷新才能看到最新的变化.
谢谢!
我想在加载网页时在浏览器上将图像,css和javascript缓存在客户端.有很多不同类型的缓存我很困惑,哪些与asp.net mvc一起使用.
是否也可以让他们的浏览器检查这些文件的新版本或修改版本?
谢谢!
通常希望浏览器缓存资源 - JavaScript,CSS,图像等,直到有新版本可用,然后确保浏览器取代并缓存新版本.
一种解决方案是在资源的文件名中嵌入一个版本号,但是将以这种方式管理的资源放在一个带有修订号的目录中也可以做同样的事情吗?该文件的整个URL是否用作浏览器缓存中的密钥,还是仅仅是文件名本身和一些元数据?
如果从获取我的代码更改/r20/example.js到/r21/example.js,我可以肯定的是修订20 example.js被缓存,但现在修订21已经不是获取它,这就是缓存?
caching ×8
javascript ×6
.net ×2
asp.net-mvc ×2
browser ×2
css ×2
url ×2
.htaccess ×1
filenames ×1
gzip ×1
http ×1
image ×1
refresh ×1
versioning ×1
xampp ×1