如何在没有人工干预的情况下在 angularJS 中重新加载"index.html"?



我有一个在Angularjs中开发的网站,index.html是应用程序的根源。

所有JS和CSS版本都保留在index.html本身中,这意味着要在浏览器上重新加载任何更改向用户反映" index.html"。)。这是一个问题,因为可能会有机会在他的浏览器中打开了我们网站的选项卡,并且我们发布了一个新版本。此版本将在没有触发"手动刷新"之前在用户的浏览器上发布,并且" index.html"没有重新加载,因此提出了用户不会使用我们的最新版本的可能性。

通过从Web-Server发送最新版本并将其与浏览器中的当前版本进行比较并自动触发重新加载后,我们已经编写了一个框架来重新加载所有资源,并将其与当前版本进行比较。此修复程序正常运行,但是问题再次是,如何首次将此版本发布给所有用户的浏览器?

我希望你能得到我的问题吗?让我知道。

这是不可能的。如果尚无代码可以实现该功能,则无法强制开放页面刷新。您必须等到用户自己刷新它,浏览器缓存到期,以及用户和您的服务器之间的任何中间缓存。

如果您还不熟悉,我建议您搜索" HTTP缓存",以及"缓存破坏"。通常,您可能需要考虑将index.html作为一个小文件,该文件在<script>标签中引用您的大文件,为index.html设置CACHE控件非常低,并在您的大文件上使用缓存破坏技术。

但是,对于您的第一个版本,无法使打开的选项卡或现有缓存无效。如果这会引起服务器问题,请阅读" API版本"以获取不同的方法来处理它。

最新更新