silverlight - 浏览器如何处理 XAP 包的缓存?

标签 silverlight caching browser client xap

如您所知,您可以构建 silverlight XAP 包并在 HTML 页面或 asp.net 页面上使用对象标记引用它。

当用户第一次引用该页面时,浏览器从服务器下载 XAP 包时,如果用户刷新同一页面,是重新下载相同的 XAP 包还是使用缓存的版本?

如果用户导航到使用相同 XAP 包的另一个页面,并且由于用户所在的上一个页面而已经下载了 XAP 包,浏览器是否使用缓存版本或转到服务器并下载又来了吗?

如果浏览器一直使用缓存版本,它如何知道何时使用缓存版本以及何时使用新版本的 XAP 包,因为它可能已经用新的更改进行了重建?和包的版本号有关系吗?

最佳答案

XAP 被视为与图像(png/gif/jpg 等)相同的常规资源文件。在其 HTTP 缓存条件匹配之前,浏览器不会下载新副本,这超出了此处解释的范围。我们唯一采用的解决方案是在 XAP 的 URL 后面附加“?tag”,该标签可以替换版本号,从而强制浏览器重新下载文件。

所以我们将我们的网址标记为..

MySilverlightClient.xap?v1
MySilverlightClient.xap?v2

等等。因此,即使它被缓存为当前版本也没有问题,但是当服务器端更改新版本时,我们可以将标记 v1 更改为其他内容,这将强制浏览器将其视为新 URL 并重新下载它,即使它已被缓存。

关于silverlight - 浏览器如何处理 XAP 包的缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6344496/

相关文章:

c# - 在依赖对象的 XAML 中启用直接内容创建

c# - 全局 try catch

javascript - 页面可见性 API - 检查浏览器是否在后台?

javascript - 什么时候真正需要基于文件名的浏览器缓存清除?

caching - ASP.NET 核心 WebAPI : Memory Caching vs Response Caching

google-chrome - PowerShell,如何在现有的浏览器选项卡中打开URL?

javascript - 删除浏览器历史记录中的最后一项

c# - Silverlight:在没有代码隐藏的情况下删除内容加载时的加载消息?

silverlight - Windows Phone 7/Silverlight 的绘图库

java - 我应该在 Spring MVC Web 应用程序的 DAO 层或服务层上进行缓存吗?