相关疑难解决方法(0)

Cache-Control有什么区别:max-age = 0和no-cache?

标题Cache-Control: max-age=0意味着内容被认为是陈旧的(并且必须立即重新获取),这实际上与之相同Cache-Control: no-cache.

caching http http-headers

616
推荐指数
8
解决办法
41万
查看次数

使用<meta>标签关闭所有浏览器的缓存?

我读到,当您无法访问Web服务器的标头时,您可以使用以下命令关闭缓存:

<meta http-equiv="Cache-Control" content="no-store" />
Run Code Online (Sandbox Code Playgroud)

但我也读到这在某些版本的IE中不起作用.是否有任何<meta>标签可以关闭所有浏览器中的缓存?

html firefox internet-explorer caching asp.net-web-api

427
推荐指数
5
解决办法
76万
查看次数

强制浏览器清除缓存

有没有办法可以在我的页面上放置一些代码,这样当有人访问某个站点时,它会清除浏览器缓存,以便他们可以查看更改?

使用的语言:ASP.NET,VB.NET,当然还有HTML,CSS和jQuery.

html browser caching meta-tags

268
推荐指数
10
解决办法
57万
查看次数

防止浏览器缓存jQuery AJAX调用结果

看起来如果我使用加载动态内容$.get(),结果会缓存在浏览器中.

在QueryString中添加一些随机字符串似乎解决了这个问题(我使用new Date().toString()),但这感觉就像一个黑客.

有没有其他方法来实现这一目标?或者,如果唯一的字符串是实现这一目标的唯一方法,除了以外的任何建议new Date()

javascript ajax jquery browser-cache

249
推荐指数
11
解决办法
29万
查看次数

单击后退按钮时是否存在跨浏览器onload事件?

对于所有主流浏览器(IE除外),onload由于后退按钮操作,页面加载时不会触发JavaScript 事件 - 它仅在首次加载页面时触发.

有人能指出我解决这个问题的一些示例跨浏览器代码(Firefox,Opera,Safari,IE,...)吗?我很熟悉Firefox的pageshow活动,但不幸的是Opera和Safari都没有实现这一点.

javascript pageload

180
推荐指数
6
解决办法
18万
查看次数

注销后阻止用户查看以前访问过的安全页面

我要求最终用户在注销/注销后不能返回受限页面.但目前最终用户可以通过浏览器后退按钮,访问浏览器历史记录或甚至通过在浏览器的地址栏中重新输入URL来实现.

基本上,我希望最终用户在注销后不能以任何方式访问受限制的页面.我怎样才能做到最好?我可以用JavaScript禁用后退按钮吗?

jsp servlets back-button logout browser-history

99
推荐指数
2
解决办法
6万
查看次数

如何防止Angular 2站点上的浏览器缓存?

我们目前正在开发一个新项目,定期更新,我们的客户每天都会使用这些更新.该项目正在使用角度2开发,我们面临缓存问题,即我们的客户没有看到他们的机器上的最新变化.

主要是js文件的html/css文件似乎得到了正确的更新而没有给出太多麻烦.

caching cache-control browser-cache angular2-template angular

80
推荐指数
5
解决办法
7万
查看次数

如何在需要时通过HTTPS包含CSS和JS文件?

我正在向页眉和页脚添加外部CSS文件和外部JS文件.加载HTTPS页面时,某些浏览器会抱怨我正在加载不安全的内容.

当页面本身是HTTPS时,是否有一种简单的方法可以让浏览器通过HTTPS加载外部内容?

html javascript css https

77
推荐指数
2
解决办法
7万
查看次数

防止在浏览器中使用iframe缓存

你如何阻止Firefox和Safari缓存iframe内容?

我有一个简单的网页,其中包含iframe到不同网站上的网页.外部页面和内部页面都有HTTP响应头以防止缓存.当我单击浏览器中的"后退"按钮时,外部页面正常工作,但无论如何,浏览器总是检索iframed页面的缓存.IE工作正常,但Firefox和Safari给我带来了麻烦.

我的网页看起来像这样:

<html>
  <head><!-- stuff --></head>
<body>
  <!-- stuff -->
  <iframe src="webpage2.html?var=xxx" />
  <!-- stuff -->
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

var变量总是变化.尽管iframe的URL已更改(因此,浏览器应该向该页面发出新请求),但浏览器只是获取缓存的内容.

我已经检查了来回的HTTP请求和响应,我注意到即使外部页面包含<iframe src="webpage2.html?var=222" />,浏览器仍然会获取webpage2.html?var=111.

这是我到目前为止所尝试的:

  • 使用随机var值更改iframe网址
  • 将Expires,Cache-Control和Pragma标头添加到外部网页
  • 将Expires,Cache-Control和Pragma标头添加到内部网页

我无法做任何JavaScript技巧,因为我被同源策略阻止了.

我的想法已经不多了.有谁知道如何阻止浏览器缓存iframed内容?

更新

我安装了Fiddler2,因为Daniel建议再进行一次测试,不幸的是,我仍然得到了相同的结果.

这是我进行的测试:

  1. 外页Math.random()在JSP中使用随机数生成.
  2. 外页在网页上显示随机数.
  3. 外页调用iframe,传入随机数.
  4. 内页显示随机数.

通过此测试,我能够确切地看到哪些页面正在更新,以及哪些页面被缓存.

视觉测试

为了快速测试,我加载页面,导航到另一个页面,然后按"返回".结果如下:

原始页面:

  • 外页:0.21300034290246206
  • 内页:0.21300034290246206

离开页面,然后回击:

  • 外页:0.4470929019483644
  • 内页:0.21300034290246206

这表明内部页面正在被缓存,即使外部页面在URL中使用不同的GET参数调用它.出于某种原因,浏览器忽略了iframe请求新URL的事实; 它只是加载旧的.

提琴手测试

果然,Fiddler证实了同样的事情.

(我加载页面.)

外页被调用.HTML:

0.21300034290246206
<iframe src="http://ipv4.fiddler:1416/page1.aspx?var=0.21300034290246206" />
Run Code Online (Sandbox Code Playgroud)

http://ipv4.fiddler:1416/page1.aspx?var = 0.21300034290246206被调用.

(我离开页面,然后回击.)

外页被调用.HTML:

0.4470929019483644
<iframe src="http://ipv4.fiddler:1416/page1.aspx?var=0.4470929019483644" />
Run Code Online (Sandbox Code Playgroud)

http://ipv4.fiddler:1416/page1.aspx?var = 0.21300034290246206被调用.

好吧,从这个测试中,看起来好像Web浏览器没有缓存页面,但它正在缓存iframe的URL,然后在该缓存的URL上发出新请求.但是,我仍然难以理解如何解决这个问题.

有没有人对如何阻止Web浏览器缓存iframe URL有任何想法?

browser iframe caching back-button

76
推荐指数
7
解决办法
9万
查看次数

在Django中战斗客户端缓存

我正在使用render_to_response快捷方式,并且不希望创建特定的Response对象来添加其他标头以防止客户端缓存.

我想要一个包含以下内容的回复:

  • Pragma:没有缓存
  • 缓存控制:无缓存
  • 缓存控制:必须重新验证

以及浏览器希望解释为避免缓存的指令的所有其他漂亮方式.

是否有一个无缓存的中间件或类似的东西可以用最少的代码入侵来做到这一点?

django caching

66
推荐指数
7
解决办法
3万
查看次数