Загрузка js по событию начала активности пользователя

175
Алексей,
Загрузка 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;
});
Опубликовано 9 июня 2021 | Обновлено 18 июня 2021
производительность, костыли, Яндекс.Карты, js
Поделиться
Похожие статьи
Загрузка и инициализация API Яндекс карт при скролле 0
API карт весит много, js код тяжёлый. Загружать сразу - плохая идея. Если карта появляется по клику,...
Читать дальше »
Алексей,
Комментарии
Авторизуйтесь чтобы получать уведомления об ответе
7 сен 2021
Нужно делать иначе, когда блок с картой в видимой части экрана пользователя. Простой пример почему неправильно ждать активности пользователя: если пользователь уже открывал страницу с картой и оставил ее в закладках, то при повторном открытии она не будет загружена.
Алексей
7 сен 2021
Иван, но, когда карта в видимой части, то карту нужно загружать сразу, нет смысла откладывать. Или вы про случай когда пользователь доскроллил до карты и ушел на другую вкладку? Попробую потестить, вроде проблем с этим не возникало.
Я всё мучаю загрузку яндекс карт. Уж слишком они тяжелые, сразу грузить нельзя, а при открытии они загружаются очень долго.