#silverlight #performance #deployment #browser
#silverlight #Производительность #развертывание #браузер
Вопрос:
У меня есть приложение для огромного бизнеса, которому требуется много страниц, элементов управления и т.д. Размер файла .xap легко увеличивается до 50 МБ. Я замечаю, что каждый раз, когда я загружаю страницу, файл .xap загружается на мой локальный. Однако мои пользователи могут использовать сеть 3G для подключения, поэтому, должно быть, это происходит очень медленно, если мы отключаем приложение каждый раз, когда они открывают страницу. Итак, мне было интересно, могу ли я каким-то образом выполнить развертывание, аналогичное WPF, которое загружается в local только при изменении версии….
Приветствуются любые другие предложения по повышению скорости загрузки.
Большое спасибо
Комментарии:
1. На самом деле вы хотели бы настроить свой веб-сервер на кэширование файла XAP; это был бы правильный путь.
Ответ №1:
Прежде всего, для большинства, отсортируйте заголовки кэширования вашего веб-сервера. Обычно вы открываете папку ClientBin в диспетчере IIS и вводите раздел заголовка HTTP-ответа. Установите срок действия примерно на 1 день (или, если вы обновляете в обычное рабочее время, установите на 15 минут). Обратите внимание, что только потому, что срок действия содержимого истекает, это не означает, что оно будет загружено повторно, но это означает, что оно будет кэшировано перед использованием. Браузер сообщит серверу о текущей версии, если срок ее действия истек, позволяя серверу просто ответить «продолжайте и используйте, что она не изменилась с момента последней проверки».
Для такой большой системы вам следует серьезно подумать о разделении приложения на несколько проектов dll. Затем используйте функцию кэширования библиотеки приложений, найденную в основных свойствах проекта apps. Вам необходимо создать соответствующий .extmap.xml файлы для каждой из ваших библиотек DLL. Они уже есть во многих библиотеках SDK и Toolkit DLL. Это приводит к тому, что отдельные zip-файлы для этих DLL-файлов помещаются в папку ClientBin и не объединяются в один большой Xap. Это позволяет разделить медленно перемещающийся / никогда не меняющийся код на набор архивных файлов и более часто меняющийся бизнес-код на другой набор. При обновлении приложения вы обновляете только измененные архивные файлы, тем самым уменьшая нагрузку на загрузку новой версии. (Обратите внимание, это работает только с приложениями на основе встроенного браузера).
Ответ №2:
В параметре проекта serverlight установите флажок Уменьшить размер XAP с помощью кэширования библиотеки приложений.