2010-02-19 3 views
1

У меня есть сайт с сторонним Javascript, который включает внешний URL. Однако он часто загружается очень медленно (если вообще). Это служба отслеживания, используемая нашей маркетинговой командой, поэтому я не могу ее удалить (я предложил ее!).slow-loading javascript включает в себя блоки остальной части сайта

В настоящее время он включен в конце моего шаблона страницы с очень простыми

<script src='http://remoteurl/'></script> 

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

Так что проблемы с производительностью внешнего сайта вызывают проблемы для нашего сайта.

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

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

Спасибо за любые советы.

ответ

0

Можете ли вы добавить код в самом конце страницы, который добавляет тег сценария на страницу вместо добавления тега сценария вручную? Вот как это делает Google Analytics. Таким образом, весь оставшийся (ваш) код работает до того, как код трекера даже добавлен на страницу.

Пример:

<script type="text/javascript"> 
    var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); 
    document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); 
</script> 

<script type="text/javascript"> 
    try { 
     var pageTracker = _gat._getTracker("tracker-id-removed"); 
     pageTracker._trackPageview(); 
    } catch (err) { } 
</script> 
4

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

+0

Я знаю, что некоторые * БОЛЬШИЕ * популярные веб-сайты, которые делают это. –

Смежные вопросы