Я не хочу, чтобы задержать предоставление моей страницы, если внешний ресурса требуется некоторое время для загрузки и поэтому я реализовал эту логику ...Как разблокировать рендеринг моей веб-страницы, если внешний ресурс не загружается в Firefox?
<script type="text/javascript">
function importScript (sSrc, fOnload) {
var oScript = document.createElement("script");
oScript.type = "text\/javascript";
oScript.defer = true;
if (fOnload) { oScript.onload = fOnload; }
document.currentScript.parentNode.insertBefore(oScript, document.currentScript);
oScript.src = sSrc;
}
importScript(“//thirdpartysite.com/theirscript.js", function() { doStuff(); });
});
</script>
Это прекрасно работает, кроме как на Mac Firefox (я использую версию 45.0 0,1). В этом браузере страница не отображается, пока этот ресурс не был загружен. Кто-нибудь знает способ отложить загрузку ресурса, не блокируя рендеринг страницы, которая предпочтительно работает как на Chrome, так и на Firefox (все браузеры были бы хороши, но у меня нет времени проверить их все).
не проверено, всего несколько идей: 'oScript.async = true;' then' document.body.appendChild (oScript); 'вместо добавления его в заголовок (скорее всего), и если это не сработает, вы можете попробуйте задержать выполнение кода внутри функции, до 'DOMContentLoaded'. – Thomas
Я удаляю любую из вышеперечисленных строк, чтобы заменить то, что у вас здесь? – Dave
Возможно, этот ответ поможет вам http://stackoverflow.com/questions/7718935/load-scripts-asynchronously –