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

Act*_*veX 9 browser silverlight client caching xap

如您所知,您可以构建一个Silverlight XAP包并使用HTML页面或asp.net页面上的object标签引用它.

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

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

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

Aka*_*ava 9

XAP被视为与image(png/gif/jpg等)相同的常规资源文件.浏览器不会下载新副本,直到其HTTP缓存条件匹配,这超出了解释范围.我们改编的唯一解决方案是在XAP和标签的URL之后添加"?tag",以替换将迫使浏览器重新下载文件的版本号.

所以我们标记我们的网址就像..

MySilverlightClient.xap?v1
MySilverlightClient.xap?v2
Run Code Online (Sandbox Code Playgroud)

等等.即使它是针对当前版本进行缓存也没有问题,但是当在服务器端更改新版本时,我们可以将标记v1更改为其他强制浏览器将其视为新URL并重新下载的内容.即使它是缓存的.