как настроить смешение страниц, чтобы медленные макросы не замедляли загрузку страниц - PullRequest
2 голосов
/ 19 февраля 2010

некоторые страницы, использующие такие макросы, как:

topusers или Popularlabels

, загружаются очень медленно.Есть ли способ выполнить эту загрузку асинхронно через ajax вместо того, чтобы этот блок загружал начальную страницу?

Ответы [ 4 ]

2 голосов
/ 11 апреля 2010

Макрос Future - абсолютно 100% лучший способ сделать это.

Мы массово используем его на экземпляре Confluence 2.10.3 для ускорения всего, но я не проверял его с более свежими версиями.

https://labs.atlassian.com/wiki/display/FUTURE/Home

Я сделал небольшое видео, показывающее, как это работает - обращаясь к серверу SharePoint, чтобы отобразить список документов. Это не идеальная демонстрация, но дает представление о том, что она делает.

Я тоже сделал это видео, но у меня пока нет представителя StackOverFlow, чтобы публиковать его здесь, так что здесь часть URL screencast.com/t/tz8xdSCQYxp

Брендан

1 голос
/ 08 марта 2010

Если вы планируете использовать библиотеку jQuery, она имеет встроенную поддержку асинхронных запросов ajax.

0 голосов
/ 07 марта 2010

На самом деле все, что вам нужно сделать, это отложить загрузку до тех пор, пока страница не загрузится. Для этого вы можете создать функцию javascript, которая устанавливает теги сценария того, что вы загружаете, и затем, когда тело будет загружено, вызовите эту функцию. Вы можете сделать это:

<code>function loadConfluence() {
 var ads = document.createElement('script');
 ads.async = true;
 ads.src = 'your_ad_url';
 return document.getElementsByTagName('body')[0].appendChild(ads);
};
window.onload = loadConfluence();
Этот код будет ждать до полной загрузки страницы, а затем вызывать функцию для загрузки ваших объявлений.
0 голосов
/ 01 марта 2010

Возможно, вам поможет подход Google Analytics.

(function() {
    var delayed = document.createElement('script');
        delayed.type = 'text/javascript';
        delayed.async = true;
      delayed.src = 'URL_AD_SERVER';
        (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(delayed);
})();

Однако я не знаю, как будут работать зависимости:)

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