Подождите при загрузке веб-частей SharePoint - проблема синхронизации - PullRequest
0 голосов
/ 15 февраля 2011

У меня возникает проблема с синхронизацией при загрузке нескольких веб-частей на одном сайте SharePoint 2007.

В настоящее время на моем сайте есть несколько веб-частей, все выровнены по вертикали.Я хочу, чтобы самая нижняя веб-часть загружалась последней, потому что у нее есть компонент, который будет отображаться для выполнения jQuery .offset().top (который получает верхнюю левую позицию компонента во время выполнения кода).В настоящее время компонент появляется в неправильном месте каждый раз, когда я перезагружаю страницу.Единственный раз, когда он находится в правильном месте, когда над ним нет других веб-частей.

Например:

WebPartWithComponent первый на странице:

WebPartWithComponent <-- component rendered here correctly.
WebPart1
WebPart2
WebPart3

Другие веб-части перед WebPartWithComoonent на странице:

Webpart1
Webpart2 <-- component rendered here instead.
WebpartWithComponent <-- this is where the component should be rendered
Webpart4

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

Веб-части отображаются в файлах jQuery (js).

Спасибо.

1 Ответ

0 голосов
/ 15 февраля 2011

Не могли бы вы использовать функцию готовности jQuery в вашей последней веб-части?

http://api.jquery.com/ready/

$(document).ready(function() {
   //do your stuff
});

Или, если у вас есть, настройте некоторый массив отслеживания в ваших веб-частях:

if(typeof(gWebParts)=="undefined") {
gWebParts = new Array()
}
gWebParts[gWebParts.length] = someobject

Затем, когда они загрузятся, установите некоторую переменную

gWebParts[i].loaded = true

И в вашей последней веб-части, установите таймер

setInterval(function() {
   if(gWebParts all loaded) {
      clearInterval()
      //do your stuff
   }
}, 250)
...