浏览器是否会缓存html页面

发布于 2022-09-02 23:30:10 字数 1139 浏览 15 评论 0

2016-06-24 更新:

前端开发时,通常说到静态资源,都只提及css和js,清理缓存时也只是针对css和js,没有看过 “清除html缓存” 的说法(可能是我孤陋寡闻0_0)。为什么呢?HTML不会被缓存吗?

------------------------------分割线------------------------------------------

以下是原提问:

对于前端开发,在开发过程中我们要及时看到修改后的效果,清除缓存针对的都是 css 、js 静态资源文件。

那么html文件呢?在访问之后是否会被缓存?为什么?

如用 <a> 标签访问:

<a href="http://b.com/index.html">goto B</a>

我自己简单地测试了一下:

  1. 本地服务器配置两个项目:A和B

  2. 项目A很简单,只有一个html文件,只有一个标签,如下:

<a href="http://b.com/index.html">goto B</a>
  1. 项目B根目录下有 index.html ,在里面写一个标签作为标记:

<h1>1</h1>

结果:
每次改变index.html 里 <h1> 的数字,通过<a href="">跳转都会及时更新。

疑问:
为什么css、js静态资源会被缓存,而html不会被缓存呢?

我想解决的实际问题是这样的:
我有两个项目,项目A在一个html页面的 <a href=""> 标签中访问了项目B的html页面。
我想知道,当我修改了B中的html页面内容,用户再通过A的 &lta> 标签访问时,是会及时更新还是用户的浏览器会读取缓存的html内容?
对于自己的测试并不放心,因为遇到过不会及时更新的情况,但是不知道为什么无法重现这种情况。-_-b

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

阳光①夏 2022-09-09 23:30:10

你可以在服务器端看一下响应是304还是200,或者火狐好像也可以查看该次请求的结果。

正常来说缓存尤其是html的缓存不能解决降低访问的压力,只是降低数据传输的压力,就是说浏览器向服务器发送一个uri请求,如果改uri设置了缓存,本次请求就会包括上次对这个uri内容请求返回的时间,服务器一比较当前的内容(举例来说就是你这个index.html),“嗯,和上次请求的内容不一样了嘛”,然后就会返回完整的内容。如果没有改变,就返回一个简单的304,减少的是数据的传输量,而请求是实实在在发生了。

好像也可以在服务器端设置告诉浏览器如果没有超过规定刷新时间就不要请求确认的,具体字段记不得了,有人知道能评论告诉我就谢谢了

萌梦深 2022-09-09 23:30:10

看看是不是加了manifest这个属性,这个属性会缓存html

荒人说梦 2022-09-09 23:30:10

缓存是服务器配置的,浏览器请求css,js时会带上设置缓存的响应头。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文