发布
社区首页 >问答首页 >强制(或友好地询问)刷新浏览器

强制(或友好地询问)刷新浏览器
EN

Stack Overflow用户
提问于 2013-04-16 02:41:15
回答 2查看 197关注 0票数 1

所以我运行了一个使用了大量javascript和ajax的站点。我知道如何让用户刷新他们的浏览器when the browser loads。但是如果我需要他们在加载网站后刷新他们的浏览器,会发生什么呢?

我希望更改提供给客户端的ajax以加快速度,但这将导致尚未刷新浏览器的用户出现错误。

我能想到的唯一解决方案是,当需要新版本的JavaScript文件时,站点使用一个弹出式窗口,要求用户强制刷新他们的浏览器。(这不会真正修复当前版本,但可以防止将来出现问题。)

我讨厌使用弹出窗口来做一些我可以自动完成的事情。有没有更好的方法来强制客户端更新?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-16 02:47:42

代码语言:javascript
代码运行次数:0
复制
window.location.href = "http://example.com"

http://example.com指向的页面替换当前页面。

票数 1
EN

Stack Overflow用户

发布于 2013-04-16 03:01:24

您听起来好像在获取JavaScript通过Ajax方法加载的数据的更新版本时遇到了问题,对吗?例如,如果两个Ajax调用试图加载“data.txt”,那么第二个调用只使用缓存的版本。

在加载新版本的脚本时,您也可能会遇到问题。

解决这两个问题的方法是将随机生成的查询字符串添加到脚本源和Ajax源中。

例如,创建一个加载主脚本的脚本,如下所示:

代码语言:javascript
代码运行次数:0
复制
/* loader1.js */
document.write('<script src="mainjavascript.js?.rand=', Math.random(), '"></script>');

在您的HTML中,只需执行

代码语言:javascript
代码运行次数:0
复制
<script src="loader1.js"></script>

同样的方法也适用于JavaScript Ajax请求。假设"client“是一个新的XMLHttpRequest()对象,并且已经使用readystatechange函数等正确设置了它,那么您只需附加相同的查询字符串,如下所示:

代码语言:javascript
代码运行次数:0
复制
request = client.open('GET', 'data.txt?.rand=' + Math.random(), true);
request.send();

您可能会使用库来执行Ajax请求,因此这样做会更容易。只需将data URL指定为'data.txt?.rand=' + Math.random(),而不仅仅是'data.txt‘。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16022474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档