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

Javascript 如何在单页应用程序发布/更新后回发到服务器,javascript,single-page-application,Javascript,Single Page Application,我有一个网站。每当我们发布对网站的更改时,用户的浏览器不会返回到服务器以获取新的javascript文件。该应用程序一直在用户的浏览器中愉快地运行,虽然它会对数据进行ajax调用,但javascript文件不会改变。如果调用的后端API的签名发生更改等,这可能会导致错误。如果用户刷新页面,他们会得到更新的javascript文件,之后一切正常 有没有办法告诉浏览器站点已经更新并获取新的javascript文件,而不仅仅是使用相同的文件运行应用程序 我使用Angular CLI来构建应用程序,因此

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

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

我使用Angular CLI来构建应用程序,因此当网站发布时,javascript文件的末尾会有散列等。这不是缓存文件和不更新文件的问题。。。浏览器知道需要请求文件或刷新页面时会出现问题。

您可以使用轮询服务器进行更改,并在发现更改时刷新浏览器

web工作者的另一种选择是在给定的时间后使用justrefresh


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

您可以用角度代码编写一个程序,该程序:

  • 如果发生更改,则定期检查api的版本
  • 执行定期检查,以确定用户何时空闲以及用户何时不在包含脏字段的编辑页面中
  • 满足步骤2条件时刷新页面
  • 使用此库查看空闲状态

    如果文件名为seame,则在“?like”?ver1.1”之后添加此文本,以告知浏览器该文件有新版本

    您可以使用清单文件

    另一种方法是使用

    CacheStorage,clear()