Клуб API Карт

100+ маркеров + yandex maps 2.x = 20-секундная загрузка страницы

Пост в архиве.

Столкнулся с довольно странной проблемой, с API 1.x подобного не наблюдал: при попытке добавления на карту более 100 маркеров IE8 зависает намертво секунд на 20. Код довольно простой:
 

ymaps.ready(init);
var map;
function init() { 
    map = new ymaps.Map ("map", { center: [56.36, 37.64], zoom: 8, behaviors: ['default', 'scrollZoom'] });
    for (var i = 0; i < 100; i++) {
        var pm = new ymaps.Placemark([55.76 + Math.random(), 37.64 + Math.random()], { iconContent: 'example' });
        map.geoObjects.add(pm);
    }
}

 Рабочий пример можно найти тут

Подскажите, как можно решить эту проблему?
Также котелось бы узнать причины данной магии (см. обрезанные подписи к маркерам)

4 комментария

Довольно странно. Я у себя таких феерических тормозов не замечаю.

По умолчанию метки не тянутся под контент, т.е. там просто картинки на фоне.

Если вы хотите чтобы они растягивались, нужно задавать соответствующие опции.

см. http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/option.presetStorage.xml

Да мне и не нужно, чтоб они растягивались :)
Мне б так, чтоб iconContent был виден в IE8 так же, как и в других браузерах 

PS. Я обновил пример. Теперь на карту добавляется 200 меток (опять же это только половина от того, что мне нужно). IE8 виснет намертво ~ на 20 секунд. Пробуйте :P

Андрей Грэй
28 января 2016, 02:43

Ваш пример не открылся.

В самом начале освоения апи, столкнулся с выбором типа меток. Мне очень нравятся стандартные тянущиеся метки. Они удобны и контент в себя размещая тянутся под него. Короче полный класс. Но есть недостаток - с ними реально тормозит карта от 100 точек и выше. Т.е. рендеринг карты занимал 2-4 секунды, что мне совсем не понравилось. 

Решил в том случае так: использовал png рисунки в качестве меток на локальном сервере и отказался от iconContent.

Думаю что можно было создать свой аналог тянущейся метки и возможно это было бы быстрее, но это не потребовалось.

Судя по скриншоту, вам не требуется iconContent, потому попробуйте заменить метки.

Поправил ссылку

Я сразу отказался от использования стандартных рисунков у меток в силу специфики задач. Пример выше - это упрощенная реализация того, что мне нужно.
Необходимо добавить 350+ меток на карту таким образом, чтоб iconContent размещался под меткой.
Но главная проблема сейчас не в iconContent...