Загрузка js по событию начала активности пользователя
Я всё мучаю загрузку яндекс карт. Уж слишком они тяжелые, сразу грузить нельзя, а при открытии они загружаются очень долго.
Как вариант, можно API загружать при любом действии пользователя (например скролл или движение мыши), а объекты добавлять при "показе" карты.
$(document).on('mousemove', function (event) { // по движению мыши let map = $('#map'); if (!map.hasClass('map-loaded')) { $(this).off(event); // загружаем апи карт, после загрузки добавляем класс map-loaded } }).on('touchmove', function (event) { // по движению пальца let map = $('#map'); if (!map.hasClass('map-loaded')) { $(this).off(event); // загружаем апи карт, после загрузки добавляем класс map-loaded } }); $('#button-open-map').on('click', function () { // при клике кнопки let map = $('#map'); if (!map.hasClass('points-added')) { // добавляем точки на карту, после добавляем класс карте points-added } return false; });
Есть вопросы или нашли ошибку? Напишите комментарий (можно без регистрации), отвечать стараюсь быстро.