Есть ли способ замедлить загрузку сторонних файлов JavaScript до тех пор, пока остальная часть страницы не закончит загрузку?Задержка загрузки стороннего javascript
ответ
Вы можете прикрепить к событию onload на странице, и после этого вы можете динамически вставлять ссылки на файлы.
Например:
function loaded(){
var el = document.createElement("script");
el.src = "somefile.js";
el.type="text/javascript";
document.getElementsByTagName("head")[0].appendChild(el);
}
Один простой способ - загрузить их в конце страницы html.
Если вы хотите, чтобы первое содержимое загружалось даже с изображениями, а также получите проблемы с перекрестным браузером, сглаженные для загрузки, библиотека jQuery упрощает работу с $(window).load()
и $.getScript()
.
$(window).load(function() {
$.getScript('your_3rd_party-script.js');
});
jQuery не является ответом на все вопросы, но он дает некоторые приятные абстракции. Например, вы получите автоматический кеш-кеш IE (если хотите), и вам не придется беспокоиться о специфических для браузера вопросах непосредственных подходов к DOM-манипуляциям.
Я должен был сделать это для моего собственного сайта, и я документально его здесь:
http://tech.bluesmoon.info/2010/01/handling-documentwrite-in-dynamic.html
Итак, у вас есть следующие типы сторонних скриптов на сделка с:
Те, кто хорошо играет со страницей, либо не манипулируют DOM вообще, создают либо собственные узлы DOM, либо вы можете передать идентификатор узла DOM, в котором будет находиться весь его контент, и ждет, пока этот узел DOM не появится в DOM.
Вам не нужно беспокоиться об этих сценариях. Вы можете безопасно загружать их асинхронно или загружать их после пожара onload или DOMContentReady. Я лично предпочитаю загружать их асинхронно.
Те, кто используют
document.write
, чтобы добавить контент к странице. Эти сценарии раздражают вас, но вы справляетесь с ними с помощью псевдонимовdocument.write
на функцию, которая присоединяется к свойствуinnerHTML
конкретного DIV. В моей статье говорится об этом.Те, кто абсолютно должен находиться на странице перед пожелтением огней, обычно являются сценариями, которые измеряют время, которое требуется для перезагрузки. Вам будет предложено загрузить эти скрипты с помощью обычного узла сценария, однако подумайте, что сценарий, который измеряет onload, на самом деле не является тем, что задерживает загрузку. По этой причине я бы сказал, загрузив такие скрипты асинхронно, но поставьте асинхронный загрузчик в верхней части страницы (в разделе HEAD). Это дает возможность загружать до перезарядки.
Также обратите внимание на один нюанс, асинхронно добавлены сценарии будут блокировать OnLoad, если они были добавлены к DOM, прежде чем OnLoad обожженного, однако они не будут блокировать любое другое содержимое от нагрузки.
Да, JQuery имеет готовый способ справиться с этим: http://www.learningjquery.com/2006/09/introducing-document-ready
Вы можете использовать атрибут Defer, который будет остановить загрузку и выполнение скрипта до тех пор, пока загружается остальная часть страницы и готов:
<script src="script.js" type="text/javascript" defer="defer"></script>
- 1. Задержка загрузки Javascript
- 2. Javascript текстовый файл задержка загрузки
- 3. Задержка загрузки ресурсов
- 4. Задержка внешней загрузки javascript по секундам
- 5. Задержка Javascript или div до загрузки страницы
- 6. Задержка загрузки Javascript в каждом представлении
- 7. Задержка загрузки изображения с помощью JavaScript
- 8. Задержка загрузки iframe с javascript или jquery?
- 9. Задержка загрузки iframe?
- 10. Задержка загрузки пользовательских привязок
- 11. Задержка загрузки html5 видео
- 12. Задержка загрузки PHP cURL
- 13. Задержка загрузки шрифтов google
- 14. Задержка загрузки FBProfilePictureView
- 15. Задержка загрузки сцены Viewcontroller
- 16. Задержка загрузки макета фрагмента
- 17. Задержка загрузки снимка iOS
- 18. Задержка загрузки страницы silverlight
- 19. Задержка загрузки extjs
- 20. Задержка загрузки экрана jQuery
- 21. Задержка AJAX от загрузки?
- 22. Задержка Javascript Loading
- 23. контроль перезагрузки стороннего javascript
- 24. Задержка Javascript
- 25. Задержка Javascript
- 26. Угловая - задержка загрузки шаблонаUrl до загрузки модала?
- 27. JavaScript - Задержка выполнения определенного javascript
- 28. Задержка загрузки изображений в UIImageView
- 29. Задержка загрузки DLL в QT
- 30. Задержка загрузки модулей в python
+1 для «jQuery - это не ответ на все вопросы ...» – TheHippo