Осторожно, script async

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

На сайте перестал работать слайдер и возникли ошибки в консоли браузера, одна из них, такая

«Uncaught TypeError: jQuery(…).parallaxSlider is not a function».

Ошибка Uncaught TypeError: jQuery(...).parallaxSlider is not a function

После поиска причины возникновения ошибки, выяснилось что был установлен async на подключаемый скрипт.


<script src='https://mkronos.com/wp-content/themes/theme53444/parallax-slider/js/parallaxSlider.js'</script>

В результате скрипт размещенный ниже по коду, который использует метод parallaxSlider не срабатывал, так как parallaxSlider.js еще не подключен а вызов уже есть.


<script>
jQuery(document).ready(function($){
if(!device.mobile()&&!device.tablet()){
  liteModeSwitcher=false;
}else{
  liteModeSwitcher=true;
}
if($.browser.msie&parseInt($.browser.version)<9){
  liteModeSwitcher=true;
}
jQuery('#parallax-slider-5a6db035cfea1').parallaxSlider({
  parallaxEffect:"parallax_effect_normal",
  parallaxInvert:false,
  animateLayout:"simple-fade-eff",
  duration:1500,
  autoSwitcher:false,
  autoSwitcherDelay:5000,
  scrolling_description:false,
  slider_navs:true,
  slider_pagination:"buttons_pagination",
  liteMode:liteModeSwitcher
});
});
</script>

Вывод

Использовать async можно, но осторожно, надо учитывать очередность времени подключения и выполнения скриптов а не бездумно ставить на все скрипты асинхронную загрузку. Потому что может получится так, что вызывается функция которая еще не подключена скриптом, выдаст ошибку «. . . is not a function».

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *