我们经常在我们的网站上进行更改(使用缓存),有时用户不知道刷新页面以获取它的最新副本.
如果我们更新页面,我们如何强制用户浏览器知道有新的服务器版本,并使用它而不是他们的浏览器缓存页面?
ASP.NET 4.0
如果我在页面中更新了我的.js文件,但似乎客户端的浏览器没有下载新的.js文件(由于浏览器缓存?).哪些因素可能会影响旧的.js文件保留在客户端的PC上?有没有办法强制客户端下载新的.js文件?
编辑: 我还有另一个问题 - 浏览器保留.js缓存多长时间?它是否受客户端浏览器设置控制?
在页面上,有一个按钮.单击该按钮时,会显示一个下拉列表.下拉列表包含图像.问题是在用户单击按钮之前不会获取图像.
$("#my_button").click(function(){
$("#my_dropdown").html("<img src=\"http://mysite.com/image.jpg\" />");
});
Run Code Online (Sandbox Code Playgroud)
我想在页面加载时获取图像,以便在用户单击下拉列表时准备好.我怎样才能做到这一点?我以为我可以将图像插入带有display:noneset 的页面,所以它会进入缓存,或者有什么方法可以在jQuery中加载文档时加载?
这适用于Chrome扩展程序,如果它有任何区别.我想我可以将图像放在扩展中(这会更快),但我仍然很好奇是否可以使用JS加载图像.
谢谢,凯文
我想在我的html5缓存清单中使用第三方js.
我不知道我能不能做到,如果可能的话怎么样?
我可以在清单文件中指定完整的第三方js url吗?
我看过一些例子,他们在清单中为图像指定了http url,那么为什么我们不能为js和css做同样的事情呢?
如果我们无法实现它,还有其他选择吗?我知道我们可以将第三方j存储在本地存储中.
示例表示赞赏.
我正在尝试设置一个不缓存静态资产.css和.js的项目.我们似乎对某些人有一些内部缓存问题,我希望这可以解决它.
我有一个阶段监听器,基本上是这个http://turbomanage.wordpress.com/2006/08/08/disable-browser-caching-in-jsf/的略微修改版本
我的课:
package com.ods.common.jsf.phaselistener;
import javax.faces.context.FacesContext;
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;
import javax.servlet.http.HttpServletResponse;
public class CacheControlPhaseListener implements PhaseListener
{
public PhaseId getPhaseId()
{
return PhaseId.RENDER_RESPONSE;
}
public void afterPhase(PhaseEvent event)
{
}
public void beforePhase(PhaseEvent event)
{
FacesContext facesContext = event.getFacesContext();
HttpServletResponse response = (HttpServletResponse) facesContext
.getExternalContext().getResponse();
response.setHeader("Cache-control", "no-cache"); // HTTP 1.1
response.setHeader("Cache-control", "no-store"); // HTTP 1.1
response.setHeader("Cache-control", "must-revalidate"); // HTTP 1.1
// response.setHeader("Pragma","no-cache"); //HTTP 1.0
response.setHeader("Allow", "GET"); // Allowing GET Method only
response.setHeader("Allow", "POST");// Allowing …Run Code Online (Sandbox Code Playgroud) 我正在重新阅读这篇伟大的文章,偶然发现了我之前没有注意到的事情,这就是作者所谓的懒惰缓存.确切地说,这是上下文:
他们知道如何使用错误文档进行延迟缓存吗?
什么是延迟缓存以及错误文档与此相关的内容?我一直在谷歌上搜索这些短语,并且没有成功.
有人可以解释那是什么以及在哪里使用?我认为只是有一个不同的名称,我无法弄清楚是什么.
PS如果你知道如何更好地标记这个问题,请这样做!
如果我听起来无知,这是我从来没有遇到过的事情,所以请原谅我.
我遇到的基本问题是,在Visual Studio 2010中工作时,我所做的任何更改似乎都会被某种缓存所捕获.
例如,我将对页面进行更改,运行解决方案,然后我必须按Ctrl + F5强制刷新缓存以查看更改.这是ASP.NET/HTML/CSS和JavaScript代码.一样.
在过去,Visual Studio过去只是在每次运行时清除缓存,所以至少可以说我有点沮丧.
此外,当我将解决方案部署到IIS服务器时,用户也会遇到同样的情况.即使ASP.NET页面上有更改,用户也会继续提升缓存版本,直到清除缓存为止.我通过使用版本号重命名文件(尤其是javascript)来缓解此问题,因此客户端始终将它们视为新文件并加载而不是从缓存加载.
Visual Studio或web.config中是否有可能导致此问题的设置?
编辑:这是我的web.config文件
<configuration>
<system.web>
<sessionState cookieless="UseCookies" timeout="1440" mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424"/>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=xxx"/>
<add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=xxx"/>
<add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=xxx"/>
</assemblies>
</compilation>
<authentication mode="Windows"/>
<pages>
<controls>
<add tagPrefix="ajaxtoolkit" namespace="AjaxControlToolkit" assembly="AjaxControlToolKit"/>
</controls>
</pages>
</system.web>
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="50000000"/>
</webServices>
</scripting>
</system.web.extensions>
</configuration>
Run Code Online (Sandbox Code Playgroud) 我如何告诉GlassFish服务器,将所有JS,CSS和PNG文件存储到浏览器缓存中以减少HTTP GET请求?
我正在使用JSF和PrimeFaces.
我正在开发一个网站.
我在Mozilla中测试它,
当我对网站javascript代码进行更改时,我发现更改没有反映在浏览器中(我在Mozilla的调试器中检查了代码)
我知道这是一个缓存问题,因为当我清除缓存时,事情正常.
我是否正确识别了问题?
如果是的话,有没有办法摆脱每次清除缓存?
我正在使用.Net core和angular 5创建一个网站。我使用最新的.Net core angular template(dotnet new angular与安装的.Net core 2.1一起使用)创建了该项目。
该项目使用angular cli来构建/打包并将哈希应用于绑定的js和css文件:
但是,将网站发布到azure应用程序服务后,我发现当浏览到该网站时,会看到旧版本,直到用F5手动刷新(不需要Ctrl-F5)。这似乎是因为尽管js / css文件不会被缓存,但包含这些文件引用的index.html页面将从缓存中提供。
当我按F5重新加载网站时,home从网站请求index.html(以下)(本例中为304,因为它没有更改,如果有,它将获取最新的):
但是,当我最初加载页面(通过书签或输入地址等)时,直接从缓存中提供页面:
这是预期的行为吗?为什么第一次加载页面与按F5相比有何不同?并且我可以防止缓存吗?
browser-cache ×10
javascript ×4
asp.net ×2
caching ×2
jsf ×2
.net-core ×1
angular ×1
angular-cli ×1
browser ×1
css ×1
firefox ×1
glassfish ×1
html5 ×1
http ×1
http-headers ×1
jquery ×1
preload ×1
websphere ×1