Управление доставкой динамического содержимого в Silverlight - Причины необходимости в постоянном кэше
ОГЛАВЛЕНИЕ
Причины необходимости в постоянном кэше
Что касается динамического содержимого Silverlight, существуют два главных вопроса, в которых вам могут потребоваться несколько большие возможности управления.
Во-первых, это политика срока действия загруженного содержимого. Вам может потребоваться возможность точно указывать момент истечения срока действия пакета и необходимости его повторной загрузки. Более того, вам может потребоваться привязать момент истечения срока действия к некоторому внешнему событию, например конкретному действию пользователя или изменениям других кэшированных ресурсов. Если вы знаете, как работает кэш ASP.NET, то понимаете, что я имею в виду.
В действительности кэш ASP.NET дает возможность кэшировать данные и обеспечивать для каждого кэшируемого элемента индивидуальную политику срока действия — на основе изменений файлов, даты и времени или даже изменений других кэшированных элементов. В Silverlight 2 подобного модуля нет, но большие динамические приложения с широкими возможностями для пользовательской настройки существенно выиграли бы, если бы он существовал.
Второй аспект стандартного кэширования ресурса Silverlight, который можно было бы изменить, относится к способам использования этих пакетов пользователями. Другими словами, за любой пакет XAP, сохраненный в кэше обозревателя, несет ответственность пользователь. Если пользователь, работая в интерфейсе обозревателя, очистит кэш, все пакеты XAP будут неизбежно утрачены.
Постоянный кэш, управляемый приложением, решает оба этих вопроса. Пакеты XAP, хранящиеся в таком постоянном кэше, не были бы затронуты при выполнении пользователем очистки кэша обозревателя. Для постоянного хранения пакетов Silverlight XAP необходимо получить доступ к локальной файловой системе. Из соображений безопасности Silverlight не предоставляет приложениям доступа к локальной файловой системе в целом. Однако здесь приходит на выручку интерфейс API изолированного хранилища. Дополнительные сведения о безопасности в Silverlight см. в статье «CLR вдоль и поперек. Безопасность в Silverlight 2».