Ron*_*rby 17 html javascript html5 http single-page-application
对于单页面应用程序,当部署到服务器的更新时,有哪些方法可以强制重新加载页面和/或JavaScript文件?
一种显而易见的方法是轮询一些服务器资源以查看当前版本的应用程序是否在浏览器中运行,如果没有则加载更新的资源.
我想知道是否有更普遍接受的方法使用特定的HTTP或DOM功能.
我正在阅读HTML5 Appcache.这似乎更倾向于可以在不需要服务器连接的情况下运行的应用程序.我不认为这可能与从服务器更新SPA的资源(包括页面本身)有关.我对么?
您可以使用long polling请求来了解何时有更新,而不必在一定的时间间隔内执行请求,并且当长轮询请求返回时,您可以更新整个页面,因为旧的 javascript 文件和事件将绑定到 DOM 元素,因此它重新加载页面会更容易。
编辑
我读到了您关于让用户在更新时继续使用该页面的评论,但我认为这是非常危险的...仅显示通知来告诉用户有更新并推荐会不会太糟糕他/她重新加载页面?
否则,您将必须撤消以前的脚本,例如从 DOM 元素中取消绑定事件。
您可以使用 jQuery 轻松解除事件绑定:如何使用 jquery 解除所有事件绑定 这适用于一个 DOM 元素,您必须为页面中的每个 DOM 元素执行此操作。