浏览器是否会缓存html页面
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>
我自己简单地测试了一下:
本地服务器配置两个项目:A和B
项目A很简单,只有一个html文件,只有一个标签,如下:
<a href="http://b.com/index.html">goto B</a>
项目B根目录下有 index.html ,在里面写一个标签作为标记:
<h1>1</h1>
结果:
每次改变index.html 里 <h1> 的数字,通过<a href="">跳转都会及时更新。
疑问:
为什么css、js静态资源会被缓存,而html不会被缓存呢?
我想解决的实际问题是这样的:
我有两个项目,项目A在一个html页面的 <a href=""> 标签中访问了项目B的html页面。
我想知道,当我修改了B中的html页面内容,用户再通过A的 <a> 标签访问时,是会及时更新还是用户的浏览器会读取缓存的html内容?
对于自己的测试并不放心,因为遇到过不会及时更新的情况,但是不知道为什么无法重现这种情况。-_-b
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你可以在服务器端看一下响应是304还是200,或者火狐好像也可以查看该次请求的结果。
正常来说缓存尤其是html的缓存不能解决降低访问的压力,只是降低数据传输的压力,就是说浏览器向服务器发送一个uri请求,如果改uri设置了缓存,本次请求就会包括上次对这个uri内容请求返回的时间,服务器一比较当前的内容(举例来说就是你这个index.html),“嗯,和上次请求的内容不一样了嘛”,然后就会返回完整的内容。如果没有改变,就返回一个简单的304,减少的是数据的传输量,而请求是实实在在发生了。
好像也可以在服务器端设置告诉浏览器如果没有超过规定刷新时间就不要请求确认的,具体字段记不得了,有人知道能评论告诉我就谢谢了
看看是不是加了manifest这个属性,这个属性会缓存html
缓存是服务器配置的,浏览器请求css,js时会带上设置缓存的响应头。