Мне разместили страницу фотогалереи на CMS (Squarespace), который имеет некоторые сценарии сами по себе, которые загружают миниатюры асинхронно.
Фактические большие изображения однако не предварительно загружены, таким образом, я решил добавить свой собственный сценарий в соединение, чтобы просто заставить браузер загрузить те увеличенные изображения в кэш в фоновом режиме, как это:
(function($) {
var cache = [];
// Arguments are image paths relative to the current page.
$.preLoadImages = function() {
var args_len = arguments.length;
for (var i = args_len; i--;) {
var cacheImage = document.createElement('img');
cacheImage.src = arguments[i];
cache.push(cacheImage);
}
}
})(jQuery)
$(window).load(function(){
$.preLoadImages(
"/picture/1.jpg",
"/picture/2.jpg", //etc.
);
});
Я поместил свой код в $ (окно) .load (), потому что это - фоновый сценарий, и не важно, чтобы это даже работало вообще, это должно только улучшить производительность.
Однако я думаю, что этот сценарий так или иначе блокирует собственный сценарий предварительно загружающего миниатюры CMS.
Я прав? И самое главное, там способ продиктовать, что мой сценарий только бежит за всеми другими сценариями на странице, работали?
удачи
JavaScript всегда выполняется, событие hover
, например, срабатывает постоянно, mousemove
и т. Д.… У сценария нет "конца" бег.
Однако в вашем случае это не должно блокировать любую другую предварительную загрузку ... также вы можете использовать здесь document.ready
, поскольку вам фактически не нужно загружать изображения перед выполнением вашего кода.
Фактически, вы фактически замедляете страницу, используя вместо этого window.load
... поскольку предварительная загрузка начинается позже, когда она может быть распараллелена с другими загрузками ранее браузером. Вместо этого используйте document.ready
, например:
$(function(){
$.preLoadImages(
"/picture/1.jpg",
"/picture/2.jpg", //etc.
);
});
Сценарии загружаются сверху вниз, а загрузки тела обычно добавляются к существующим загрузкам - до тех пор, пока этот $ (функция () .. находится в конце страницы, она будет запущена последней. (последняя (согласно комментарию ник) означает начальный синтаксический анализ / запуск документа)