Как браузеры обрабатывают кэширование пакетов XAP? - PullRequest
9 голосов
/ 14 июня 2011

Как вы все знаете, вы можете создать XAP-пакет silverlight и ссылаться на него, используя тег объекта на своей HTML-странице или странице asp.net.

Когда браузер загружает пакет XAP с сервера при первом обращении пользователя к странице, если пользователь обновляет ту же страницу, повторно загружает тот же пакет XAP или использует кэшированную версию

Если пользователь переходит на другую страницу, которая использует тот же пакет XAP, и пакет XAP уже загружен из-за предыдущей страницы, на которой был пользователь, использует ли браузер кэшированную версию или идет на сервер и загружает это снова?

Если браузер все время использует кэшированные версии , как он узнает, когда использовать кэшированную версию и когда использовать новую версию пакета XAP, поскольку он может быть перестроен с новыми изменениями? Это как-то связано с номером версии пакета?

Ответы [ 2 ]

9 голосов
/ 14 июня 2011

XAP рассматривается как обычный файл ресурсов, так же как и изображение (png / gif / jpg и т. Д.). Браузер не загружает новую копию до тех пор, пока не будут сопоставлены условия HTTP-кэша, которые не описаны здесь. Единственное решение, которое мы адаптировали, - это добавить «? Tag» после того, как URL XAP и tag могут заменить номер версии, что заставит браузер повторно загрузить файл.

Так что мы помечаем наш URL как ..

MySilverlightClient.xap?v1
MySilverlightClient.xap?v2

и т.д.. Таким образом, даже если он кэшируется для текущей версии, проблем нет, но когда новая версия изменяется на стороне сервера, мы можем изменить наш тег v1 на что-то другое, что заставит браузер рассматривать его как новый URL и повторно загружать его, даже если он кэшируется.

2 голосов
/ 14 июня 2011

Я могу ответить на первую часть вашего вопроса, которая заключается в том, что браузер использует кэшированную копию XAP при повторном посещении / обновлении страницы. На самом деле, браузер может загрузить новую копию довольно забавно!

Здесь, конечно, каждый браузер ведет себя по-разному, и IE кажется самым упрямым в обновлении XAP после изменения исходного файла. Как отмечает Энтони в комментариях, XAP обрабатывается как любой другой файл содержимого в соответствии с обработкой кэша файла содержимого по умолчанию в браузере.

В этом похожем вопросе есть несколько хороших решений, которые охватывают другие способы обеспечения обновления XAP:

Превышение срока действия файла Silverlight XAP из кэша браузера программно

...