Посмотрим правде в глаза, jQuery / jQuery-ui - это тяжелая загрузка.
Google рекомендует отложенную загрузку JavaScript для ускорения первоначального рендеринга. . Моя страница использует jQuery для настройки некоторых вкладок, которые размещаются низко на странице (в основном вне начального представления), и я хотел бы отложить jQuery до ПОСЛЕ отображения страницы.
Код отсрочки Google добавляет тег в DOM после загрузки страницы путем подключения к событию onLoad тела:
<script type="text/javascript">
// Add a script element as a child of the body
function downloadJSAtOnload() {
var element = document.createElement("script");
element.src = "deferredfunctions.js";
document.body.appendChild(element);
}
// Check for browser support of event handling capability
if (window.addEventListener)
window.addEventListener("load", downloadJSAtOnload, false);
else if (window.attachEvent)
window.attachEvent("onload", downloadJSAtOnload);
else window.onload = downloadJSAtOnload;
</script>
Я бы хотел отложить загрузку jQuery таким образом, но когда я попробовал, мой код jQuery не смог найти jQuery (что не совсем неожиданно с моей стороны):
$(document).ready(function() {
$("#tabs").tabs();
});
Итак, похоже, мне нужно найти способ отложить выполнение моего кода jQuery до загрузки jQuery. Как определить, что добавленный тег завершил загрузку и анализ?
Как следствие, оказывается, что асинхронная загрузка также может содержать ответ.
Есть предположения?
defer
все свои внешние скрипты? Они должны по-прежнему выполняться в указанном порядке. - person nilskp   schedule 14.10.2012async
и jQuery, и свой скрипт. Мой скрипт проверил наличиеwindow.jQuery
. Если он не существует, он присоединит загрузчик к тегу jQuery. github2.com/toyojone - person johnchen902   schedule 08.10.2017