[Ajax/Js/jQuery] 解决微信浏览器 location-reload失效 [复制链接]

楼主: zwei5200 关注: 317|点评: 0

发表于 2019-8-14 11:16:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
在实际开发中,除去a标签跳转,经常会使用   window.location.href   去跳转页面,这个方法在绝大多数浏览器中都不会存在问题,
但是最近灰色在一个项目中,发现在部分安卓手机的 微信浏览器中,调用 window.location.reload()  刷新本页面,结果没有生效;

  1. window.location.reload();
复制代码


具体原因是因为 href 是 location对象的一个属性,reload() 则是 location 对象的方法
所以对于 href,可以为该属性设置新的 URL,使浏览器读取并显示新的 URL 的内容。
对于reload()则是重新加载当前文档,如果该方法没有规定参数,或者参数是 false,它就会用 HTTP 头 If-Modified-Since 来检测服务器上的文档是否已改变。如果文档已改变,reload() 会再次下载该文档。如果文档未改变,则该方法将从缓存中装载文档。这与用户单击浏览器的刷新按钮的效果是完全一样的。如果把该方法的参数设置为 true,那么无论文档的最后修改日期是什么,它都会绕过缓存,从服务器上重新下载该文档。这与用户在单击浏览器的刷新按钮时按住 Shift 健的效果是完全一样。
但对于安卓手机微信中的浏览器,reload只是从缓存中装载文档,所以当你使用该方法,是失效的;

建议少用window.reload(),应该使用window.location.href=""来代替。

明白了具体的问题原因,解决方案就很简单了,我们可以 通过函数来说重定义链接,但是这个方法不算是太简单和可靠,灰色推荐

使用location.href代替reload(),而且在以后的使用中也强烈建议大家使用location.href来进行刷新或者跳转

  1. window.location.href = location.href+'?time='+((new Date()).getTime());
复制代码


这里要特别声明一下,如果 当前链接地址中已经有了 ? , 请替换为 &






仿购网(www.webfgoo.com)--- 模板仿制购买中心
联系QQ:314250257
我们卖的不是模板是建站服务!!!!

使用  (可批量传图、插入视频等)

快速回帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

清晨第一杯水怎么喝才对

清晨第一杯水怎么喝才对

很多人清晨起床的时候都会有喝水习惯...详情>>