js的location.reload(true)

2024-12-25 21:19:23
推荐回答(3个)
回答1:

浏览器在浏览网页时会把当前页面保存到本地机器上的某个目录里,这个就是缓存了。

从缓存中重新载入 就是 直接使用缓存刷新显示
从服务器端重新载入 就是 无视是否有缓存,重新下载页面内容,并更新缓存

回答2:

  如果该方法没有规定参数,或者参数是 false,它就会用 HTTP 头 If-Modified-Since 来检测服务器上的文档是否已改变。如果文档已改变,reload() 会再次下载该文档。如果文档未改变,则该方法将从缓存中装载文档。这与用户单击浏览器的刷新按钮的效果是完全一样的。
  如果把该方法的参数设置为 true,那么无论文档的最后修改日期是什么,它都会绕过缓存,从服务器上重新下载该文档。这与用户在单击浏览器的刷新按钮时按住 Shift 健的效果是完全一样。

  这与用户在单击浏览器的刷新按钮时按住 Shift 健的效果是完全一样。
  true的效果和 按住shift+f5的效果相同 w3school的解释

回答3:

reload()
方法用于重新加载当前文档。
如果该方法没有规定参数,或者参数是
false,它就会用
http

if-modified-since
来检测服务器上的文档是否已改变。如果文档已改变,reload()
会再次下载该文档。如果文档未改变,则该方法将从缓存中装载文档。这与用户单击浏览器的刷新按钮的效果是完全一样的。
我们都知道客户端浏览器是有缓存的,里面存放之前访问过的一些网页文件。
其实缓存里存储的不只是网页文件,还有服务器发过来的该文件的最后服务器修改时间。
if-modified-since是标准的http请求头标签,在发送http请求时,把浏览器端缓存页面的最后修改时
间一起发到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行比较。
如果时间一致,那么返回http状态码304(不返回文件内容),客户端接到之后,就直接把本地缓存文
件显示到浏览器中。
如果时间不一致,就返回http状态码200和新的文件内容,客户端接到之后,会丢弃旧文件,把新文件
缓存起来,并显示到浏览器中。
我们知道jsp页面最后都必须编译成html文件,你的jsp页面
时间
每次请求的都不一样
,等于修改了文件
所以缓存和服务器的文件的修改时间是不一致的
,就会重新刷新了