前端 - 浏览器是否会缓存html页面

查看:697
本文介绍了前端 - 浏览器是否会缓存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>

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

  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

解决方案

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

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

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

这篇关于前端 - 浏览器是否会缓存html页面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆