Могу ли я повторно использовать приложение Silverlight в разных разделах моей страницы?
-
18-09-2019 - |
Вопрос
У меня есть единственное приложение Silverlight, которое я хотел бы отобразить в виде сетки.Способ, которым приложение Silverlight отображает свое содержимое, зависит от уникального идентификатора записи в каждой строке сетки.К сожалению, файл XAP повторно загружается для каждой строки в таблице.При размере 700 КБ это действительно влияет на производительность.Можно ли загрузить файл XAP один раз, а затем просто повторно использовать его для каждой строки в таблице?
Решение
Как только XAP будет загружен, Silverlight будет кэшировать сборки и т.д. локально для каждого экземпляра элемента управления Silverlight.Если вы создадите другой экземпляр элемента управления Silverlight, то у этого, в свою очередь, будет свой собственный домен, за которым он, в свою очередь, ухаживает.
Мое предложение состоит в том, чтобы абстрагировать требуемые вами части и поместить их в отдельный xaml, а затем загрузить их в те области, где они вам нужны больше всего.Если вам все еще требуется central .xap для обработки сортировки / управления событиями и т.д., То в Silverlight 3 мы внедрили Local Connection API, который позволяет другим экземплярам Silverlight общаться друг с другом на одной странице браузера локально (т. Е. SilverlighA может общаться с SilverlightB всеми внутри index.html )
Затем это может позволить вам установить что-то вроде локального прокси-сервера, если хотите.
Скотт Барнс / Менеджер по продуктам Rich Platforms / Microsoft.
Другие советы
Я не уверен, что ты сможешь.Теоретически он должен быть кэширован, но в данном случае теория, похоже, не стоит того, чтобы приседать.
Все зависит от того, как < object > tag ведет себя со своими различными параметрами, и это (еще одна) одна из "скудно" документированных областей silverlight.
Это возможно, но сделать это нелегко.Вы могли бы загрузить xap и сохранить его в IsolatedStorage и создавать silverlight host каждый раз, когда вам понадобится хост silverlight, ссылающийся на ваш кэшированный xap, но у вас есть только 1 МБ свободного места, и вам это не гарантировано, если у вас есть другие приложения silverlight из того же домена.
Учитывая то, что вы описали, я по-прежнему не вижу никакой ценности в том, чтобы делать то, что вы хотите сделать.Я думаю, у вас все наоборот.