javascript - 单页应用程序发布/更新后如何回发到服务器

标签 javascript single-page-application

我有一个 SPA Angular 网站。每当我们发布对网站的更改时,用户的浏览器都不会返回服务器来获取新的 JavaScript 文件。该应用程序愉快地在用户的浏览器中继续运行,虽然它会进行 ajax 调用来获取数据,但 javascript 文件不会更改。如果被调用的后端 API 的签名发生更改等,这可能会导致错误。如果用户刷新页面,他们将获得更新的 javascript 文件,之后一切正常。

有没有办法告诉浏览器该网站已更新并获取新的 javascript 文件,而不是仅仅使用相同的文件运行应用程序?

我使用 Angular CLI 来构建应用程序,因此当网站发布时,javascript 文件末尾有哈希值等。这不是文件被缓存且未更新的问题...这是一个问题浏览器知道它需要请求文件或刷新页面。

最佳答案

您可以使用web workers轮询服务器是否有更改,并在发现更改时刷新浏览器。

网络 worker 的替代方案是使用 setInteterval只需在给定时间后刷新即可。

另一种选择是在 API 响应中包含版本号,当版本号不同步时,JavaScript 处理程序将刷新页面。

关于javascript - 单页应用程序发布/更新后如何回发到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59586198/

相关文章:

javascript - 来自 php Controller 的 React SPA API 端点打开一个空白的 SPA 页面

javascript - Gmail 是单页应用程序吗

javascript - 如何在不使用 ID 的情况下在 ul 中定位 li?

javascript - 如何从特定比例的数组中选择一个随机值?

javascript - 如何在html select中为部分选项文本使用不同的颜色?

angularjs - 让 Angular 与 Moodle Web 服务配合使用

c# - Startup.cs 中 SPA 源路径的 GetCurrentDirectory() 为 VS2017 和 VS Code 返回不同的路径

javascript - JavaScript 中的所有函数本质上都是方法吗?

javascript - 如何使用reduce正确链接promise

angular - 在Angular2中从父模块继承导入到子模块