码迷,mamicode.com
首页 > Web开发 > 详细

location和location.href跳转url的区别

时间:2017-03-04 14:07:24      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:from   reload   按键   nbsp   比较   配置   缓存机制   跳转   ref   

使用 location = url  跳转,如果本地之前已经载入过该页面并有缓存,那么会直接读取本地的缓存,缓存机制是由本地浏览器设置决定的。状态码为:  200 OK (from cache) 。

 

使用 location.href = url 跳转,资源的缓存类型是根据服务器缓存配置决定的,都会向服务端发起请求,状态码会有两种情况: 200 OK 和  304 Not Modified  。前者表示该页面是从服务端重新载入的,后者表示从HTTP 头部的 If-Modified-Since 来判断该资源在服务器端是否有改变,如果没有则从本地缓存中加载,如果有则重新加载。

 

判断方式为:把浏览器端缓存页面的最后修改时间放到请求头的 If-Modified-Since 中发到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行比较,如果有改变,返回头会带有 Last-Modified 也就是该资源在服务器端的最后修改时间,并返回新的资源;如果没有改变则是上述304的情况。

 

关于 location.reload 重新加载的缓存机制和 location.href 类似,区别在于如果传入的参数 true ,如: location.reload(true) ,这会强制从服务器重新加载该资源。但这在部分浏览器里,有兼容的差异,如果不生效,可以采用万能的带时间戳方式解决:  location.reload(location.href + ‘?t=timeStamp‘) 。类似于采用按键方式的强制刷新。

location和location.href跳转url的区别

标签:from   reload   按键   nbsp   比较   配置   缓存机制   跳转   ref   

原文地址:http://www.cnblogs.com/rock-roll/p/6501131.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!