SharePoint Services + JQuery - параллельная загрузка (загрузка в стиле iGoogle) - PullRequest
1 голос
/ 22 апреля 2011

У меня есть пользовательская страница приложения SharePoint, на которой загружены различные пользовательские элементы управления (или даже они могут вызываться как веб-части).

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

Мне нужен стиль загрузки iGoogle , при котором страница доставляется немедленно, а различные части страницы (погода, спортивные новости, информация об акциях и т. Д.) Загружаются асинхронно (и параллельно) и вытягивают данные.

Мы все знаем, что Asp.Net Ajax не может обслуживать несколько асинхронных запросов одновременно. Поэтому я подумал о следующих опциях -

  1. Пользовательская объектная модель клиента SharePoint для получения данных
  2. Используя JQuery, создайте ajax-запросы к службам OOTB SharePoint и получите данные.
  3. Использование JQuery для создания ajax-запросов настраиваемого веб-сервиса SharePoint и получения необходимых данных

Но вот недостатки вышеуказанного SP Client Object -

  1. Клиентская объектная модель работает только с SP 2010
  2. Вытащить данные с другого сайта невозможно
  3. Будет работать только на страницах SharePoint

Идея JQuery / SP Services работает только с IE. Я не могу заставить его работать с Firefox. Я думаю, это должно быть проблемой аутентификации. Кроме того, межсайтовый скриптинг невозможен в JQuery / SP Services. Я не знаю никаких других уязвимостей / проблем с этим методом.

Есть какие-нибудь идеи по этому поводу?

Ответы [ 2 ]

1 голос
/ 22 апреля 2011

Несколько вариантов здесь.

  1. Используйте iframes для загрузки ваших островов контента. Обработка страницы внутри каждого iframe будет происходить в разных потоках на сервере, и вы можете хранить страницы на сервере, откуда поступают данные (без проблем между доменами). Сам браузер будет одновременно обрабатывать только две загрузки с одного и того же домена (включая ваши фреймы). Загрузка ваших фреймов может конкурировать с другими загрузками (css / js / images). Вы можете разместить iframe в разных доменах или написать некоторую логику в javascript, чтобы отложить загрузку ваших iframes до тех пор, пока не будут загружены другие ресурсы страницы (установите src iframe позже).
  2. Используйте Silverlight в качестве прокладки для междоменного доступа. Если вы можете поместить файл clientaccesspolicy.xml на серверы, к которым вы обращаетесь, вы можете использовать Silverlight для извлечения ваших данных из нескольких доменов и манипулирования DOM, когда результаты возвращаются.
  3. Используйте JQuery и JSONP для получения ваших кросс-доменов данных. Возможно, вам придется написать пользовательские веб-службы, установленные на ваших блоках SharePoint, для возврата данных таким способом.
0 голосов
/ 22 апреля 2011

Что вы имеете в виду по поводу межсайтовых проблем с SPServices?Единственные проблемы, с которыми я когда-либо сталкивался, выходят за пределы веб-приложения, оно должно прекрасно работать в одном веб-приложении.Даже тогда вы МОЖЕТЕ использовать веб-часть средства просмотра страниц для отображения данных SPServices из другого веб-приложения.

Возможно, я просто запутался.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...