Как выполнить функцию jQuery, в конце концов, и любой другой JavaScript работал

Мне разместили страницу фотогалереи на 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.

Я прав? И самое главное, там способ продиктовать, что мой сценарий только бежит за всеми другими сценариями на странице, работали?

удачи

7
задан andy 23 June 2010 в 01:10
поделиться

2 ответа

JavaScript всегда выполняется, событие hover , например, срабатывает постоянно, mousemove и т. Д.… У сценария нет "конца" бег.

Однако в вашем случае это не должно блокировать любую другую предварительную загрузку ... также вы можете использовать здесь document.ready , поскольку вам фактически не нужно загружать изображения перед выполнением вашего кода.

Фактически, вы фактически замедляете страницу, используя вместо этого window.load ... поскольку предварительная загрузка начинается позже, когда она может быть распараллелена с другими загрузками ранее браузером. Вместо этого используйте document.ready , например:

$(function(){
  $.preLoadImages(
    "/picture/1.jpg",
    "/picture/2.jpg", //etc.
   );
});
2
ответ дан 7 December 2019 в 16:38
поделиться

Сценарии загружаются сверху вниз, а загрузки тела обычно добавляются к существующим загрузкам - до тех пор, пока этот $ (функция () .. находится в конце страницы, она будет запущена последней. (последняя (согласно комментарию ник) означает начальный синтаксический анализ / запуск документа)

1
ответ дан 7 December 2019 в 16:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: