我是一名顾问,负责开发基本上是单页应用的网络应用。它所做的就是不断地在幕后检索新的 json 数据(比如每分钟一次),然后将其显示在屏幕上。
我们的客户加载此应用程序,并使其连续数周 24/7 全天候运行。如果在检索新的 json 数据时发生错误,应用程序将忽略它并继续运行。
我们正在推出更新,并希望现有客户端失效,或者在没有任何用户交互的情况下自行重新加载。此功能并非由任何人“内置”,我们正在尝试在事后进行此操作。
有没有什么方法可以让现有客户端重新加载而不告诉我们的最终用户只重新加载页面?
以下条件更多地定义了应用程序:
- 该应用程序使用 jQuery 1.9.0
- 仅在 Chrome 中运行
- 经常使用 jquery 检索新的 json 数据
- 丢弃它在 json 响应中发现的任何错误并使用旧数据。
编辑:
有人建议我们可以尝试以下方法:
- 通过 JSON 响应发送无效数据以使 chrome 崩溃(例如 500 兆数据)
- 通过 JSON 响应发送 window.location.reload(由于 jquery 防止这种类型的事情,它应该不会工作)
- 在 JSON 响应中发送“脚本”数据,如果它在某个时候收到 $.html(....),那么它也可能会运行该脚本。
我愿意接受任何关于让这个重新加载或杀死 chrome 的建议,因此客户端被迫重新加载页面。
最佳答案
如果您使用 $.ajax 来请求您的数据,而不是专门设置您的内容类型,那么您可以在服务器上执行以下操作:
- 将内容类型标题设置为“text/javascript”
- 使用 javascript 响应,例如window.location = "http://www.yoursite.com "
jQuery 可以评估它,并简单地运行您的 javascript。
关于javascript - 强制现有客户端网页重新加载 - 仅使用 JSON(无评估),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20288277/