远征筹备

简短回答

浏览器缓存CSS、JS和其他文件,以提高web应用程序及其相关页面的加载时间。根据JS新版本的实现方式,CSS与旧版本的文件在形状和形式上存在差异。页面的新部分正在调用或与浏览器中缓存的文件的旧版本进行交互。这导致了不一致的行为。

长答案

在过去web应用程序开发的日子里,如果有足够酷的地方可以超越基本的JavaScript页面,页面就会有更小的和CSS文件。另外,页面存储在单独的HTML文件中。当您单击一个新链接时,浏览器将加载一个全新的页面应用程序。

在现代web应用程序中,转向单一页面应用程序。在这些应用程序中,只有一个页面负责加载内容。所有现代网站(如Facebook、Netflix等)都是用新技术建造的。

在单页应用程序中,同一个页面上附加了大型JS和CSS文件。这意味着尽管我们的互联网速度有了巨大的提高,但浏览器在每次刷新时加载整个单一页面及其所有JS、CSS、IMG文件都将效率低下。通过缓存这些文件,这意味着浏览器现在只需要在页面上加载新的数据内容。这会带来更好的用户体验。

这样做的缺点是发布了一个新的JS或CSS文件,而浏览器仍然使用旧的JS或CSS文件。它将以不可预测的方式影响业务逻辑或布局。这就是为什么浏览器引入硬页面刷新选项,允许从后端服务器而不是缓存加载单个页面应用程序。

如果您对本主题感兴趣,您可以进一步阅读有关如何设置单个页面应用程序的最佳实践,以确保每次发布新的JS或CSS甚至图像时,都可以保证浏览器重新加载内容,而不使用缓存的资产。