浏览器缓存无法处理门户资源

734
2
06-10-2021下午05:44
标签(1)
dcafdg
通过
临时贡献者II

我正试图加快加载时间在一个门户。我有一个故事地图与嵌入式web应用程序,加载web地图。在我的浏览器的开发工具中,有超过300个请求,其中许多是针对常规的。js和。css文件,我认为只有当ArcGIS升级时才会改变。最初的性能很慢,但如果随后的负载更快,那将是一个巨大的胜利。不幸的是,所有每次我加载我的故事地图时,这些资源都会被重新请求。我看到两个半相关的问题:

过期:查看stock JavaScript文件下载到期报头已经过期:

截止日期:1月1日,星期四1970就是格林尼治时间

我的理解是,浏览器每次都会重新请求这个文件,因为它被标记为过期。是否有一些方法可以让服务器返回过期头的未来日期?我不确定这是在传送门的内部还是我们可以在IIS中设置。

Last-Modified和ETag报头:服务器返回有效的查找last - modifiedETag带有这些资源的头文件。下面是一个来自JavaScript文件的报头返回示例:

最后修改:2020年6月15日星期一20:34:56 GMT
ETag: W /“917504 - 1592253296000”

我的浏览器在随后的请求中正确地提交了这些请求(注意:按照惯例)last - modified就变成了if - modified - sinceETag就变成了具有).如果在请求头中出现了这些,服务器应该使用HTTP 304代码(未修改)进行应答,响应有效负载中没有数据,这表明浏览器已经拥有最新的资源。web服务器忽略了这些,所以我得到所有HTTP代码200响应与所有返回的数据。

如果能够防止浏览器发出不必要的请求,那么确定过期时间(如上所述)将使这一点变得毫无意义。但如果做不到这一点,是否有办法让web服务器尊重Last-Modified和ETag?这仍然需要往返服务器,但至少服务器可以使用零字节有效负载进行应答。

0荣誉
2回答
JonathanQuinn
通过 Esri显著贡献者
Esri显著贡献者

虽然这些标头值肯定是可疑的(可能想要联系支持),但您也可以查看这篇文章它描述了通过CDN缓存静态文件。

0荣誉
dcafdg
通过
临时贡献者II

谢谢,这对AWS用户来说是一个很好的解决方案。

0荣誉