Скорость работы карты ПВЗ на мобильных устройствах Принято

8

Я понимаю, что вопрос сложный и неприятный и начать его решать, а не плюнуть - это героизм. Когда-то ПВЗ было десятки, ну сотни....сейчас их наших городах-миллионниках уже тысячи. Вот и клиенты, радовались пока у них был только СДЭК, потом Боксберри.....а теперь ЯндексДоставка и это сразу +300% ПВЗ в любом городе....в Москве было 700-800, стало 2500 ПВЗ. 

И естественно, ЯндексКартам стало плохо, а точнее браузерам клиентов, особенно на мобилках. 

То есть критично, когда ПВЗ больше 1000-2000.

Возможно, стоит доработать вывод ПВЗ на карту, выводить не все, а только те, что попадают в область просмотра карты, может как-то еще, например, пообщаться/посоветоваться с разработчиками ЯндексКарт. 


Я хотел бы просто подсветить зарождающуюся проблему (так как количество ПВЗ будет расти), что есть тормоза с отображением большого количества ПВЗ.

16 комментариев

  • +1

    https://disk.yandex.ru/i/O00qa...   а тут просто сравнение количества ПВЗ до ЯндексДоставки и после. Чтобы было понимание, что до 1000 ПВЗ вроде как проблем нет.

  • 0

    Это довольно трудная переделка, оно того не стоит.

    • +2

      ну для начала нужно пообщаться с Яндексом, может они знают пути оптимизации.... Можно попробовать указывать лимит ПВЗ, отображаемых на карте...., убрать дубли когда в одном месте ПВЗ разных служб, оставлять самую дешёвую или быструю..... Опять же, если допустим лимит в 1000 ПВЗ, то при превышении убирать ПВЗ по каким-то правилам....либо опять ограничить  zoom, отображались ПВЗ только в области карты, но при   zoom больше 14 (например), чтобы не было более 100 точек... 

      Это надо пробовать, просто сейчас тренд на ПВЗ.... Даже почта уже ПВЗ.... 

      Можно конечно плюнуть и деградировать. 

      • 0

        И сейчас никто не мешает владельцу и-мага отключить для конкретного города часть служб. Ну, если его вообще волнует проблема загрузки большого количества точек. 

        Ту же почту обычно отключают для СПб и Мск

        • +1

          в коробке ограничения сделаны наоборот... Где работает доставке, а не где не работает. 

        • +1
          Дарья Матвиенко Дарья Матвиенко 5 декабря 2022 15:52 #

          Какой смысл подключать плагины с дополнительными способами доставок, чтобы потом ограничивать их работу? Дополнительные способы доставки подключаются именно для расширения географии и увеличения площади покрытия ПВЗ на карте. В некоторых случаях ограничения, наверное, могут быть оправданы, но я использую все способы доставок, которые подключены на моих сайтах. Если я не хочу взаимодействовать с какой-то доставкой — я просто не заключаю с ней договор. 
          Почта, как раз, работу сайта не грузит. Она вынесена в отдельную вкладку и никак не влияет на скорость отображения ПВЗ от других курьерских служб. Зато она существенно расширяет географию, даже в рамках доставки по СПб и Мск, где буквально все утыкано ПВЗ других курьерских служб. И, самое интересное, покупатели продолжают выбирать доставку почтой, не смотря на обилие других вариантов! Просто потому что им так удобно, потому что почта находится ближе, чем другие ПВЗ или у нее более удобный график работы и тд.

        • +2
          replicant replicant 5 декабря 2022 14:58 #

          Яндекс тут "мимо крокодил" и они помогать либо не станут, либо скажут, что это не их дело. Они со своей стороны дают "географию" правильно по вашему запросу + дают какие-то базовые варианты как можно что-то показать поверх, а остальное накидывается потом и зависит уже не от Яндекса, а о того у кого на сколько фантазии хватит. Вот это полотно точек и их параметров поверх подложки и надо оптимизировать по месту и сегментировать по областям показа. Как? Ну... тут варианты есть. С 1500 точек на карте России HTML уже под 1 Мб получается, а когда точек штук 100, то почти на 800 кБ меньше.

          Кол-во инфы, отдаваемое по одной точке примерно понятно по скриншоту (фоточки ПВЗ либо не показываю, либо тяну по запросу строго через lazy, но объем ссылочной массы мне не нравится при этом ибо 2-4 фотки на точку - это много текста в коде страницы и в последнее время фоточки отдаю лишь после того как выбор ПВЗ состоялся, а карта захлопнулась и выгрузилась, а не пихаю в общий массив данных о точках в куче т.к. одно это позволяет отыграть около 25% на голом HTML)


          Использую фоновую предзагрузку и ещё всякие штуки типа дробления по регионам, когда запрос сразу весь не исполняется, а HTML догружается по мере работы с картой. К тому моменту, когда посетитель что-то заметил на странице и будет готов открыть карту по ссылке, то у меня всё уже простроено как минимум в зоне будущей видимости.

          Кол-во точек влияет только на размер самого HTML. Объем передаваемых данных с yastatic.net всегда примерно одинаков (что-то около 3 Мб в несжатом и 700 кБ соответственно в сжатом виде) и его можно и нужно грузить в фоне до того как. И тут неважно по сути Мск онли или вся Россия сразу. 3 Мб они и в Африке 3 Мб.

          Точки в HTML хорошо жмутся (ну и ещё можно поколдовать над форматированием самой портянки). 1 Мб данных о точках прожимается в среднем до 90 кБ, но клиент есс-но может начать лагать даже при таком кол-во элементов, если совсем слаб и плох. По опыту на 1500 точках с предзагруженным контентом в экономичном форматировании балуна инфы по ПВЗ лагают только самые откровенно дешевые смарты либо замусоренные всем подряд по самое не могу.

          Даже мой самый убогий из лабораторных смартов DEXP ES 1050 на 7.0 Android в Хроме не лагает почти с такой картой.

          • +1

            Проблема не в html вовсе. 3 мегабайта или 5 роли особой не играет. Там наибольшее время уходит на преобразование и сортировку массивов и кластеризацию.

            • -1
              replicant replicant 6 декабря 2022 16:04 #

              Там это где? Может у меня какое-то другое "там".

              Если имеем порядка 150 точек ПВЗ на карте города/региона в зоне видимости (кластеры-шмастеры есс-но есть) полная генерация HTML всего 300-400 мс, полная загрузка страницы (скрипты, стили, картинки) с картой до готовности 1.7 сек.

              При 1500 точках на всю Россию генерация 350-450 мс, а полная загрузка 1.7-2.2 сек.

              До 5000-6000 точек одним махом всё остается в пределах нормы по скорости генерации и загрузки, хотя уже и по верхней границе, но мобильный слабый смарт начинает подлагивать от 2-3 тыс. точек, передаваемых разом на карту. Снижаю до 1000-1500 или срезаю лишнее за пределами стартовой зоны видимости, например, показывая карту в модальном окне, оставляя догрузку на потом в процессе прокрутки и перемещения по карте и всё в порядке.

              На лаги подопытного смарта опытным путем было выяснено, что влияет именно передаваемое кол-во ПВЗ и то, насколько раздувается HTML над картой-подложкой.

              Впрочем подглядим как и что получится сделать с этим всем у WA, т.к. вроде бы приняли к рассмотрению.

            • +1
              Дарья Матвиенко Дарья Матвиенко 5 декабря 2022 15:42 #

              Судя по тому как Вы отвечаете на запросы о работе своих продуктов, по Вашему мнению вообще никогда и ничего не стоит дорабатывать. «Лучшая» политика отвечать: у меня все работает, я не знаю что там вас может не устраивать, все идеально, до свидания. 
              Я использую Ваши плагины на своих сайтах, Вы создаете хорошие продукты, но если вдруг появляются вопросы или замечания по их работе, Вы часто выбираете такую позицию. Продукты можно и нужно дорабатывать, потому что их конечная цель — сделать жизнь клиентов проще и удобнее, а не создать новые проблемы.

            • +1
              Tony Stark Tony Stark 8 декабря 2022 00:57 #

              Где-то видел новость что яндекс выпустил новую версию карт что-то в духе Javascript API 3.0 в таком духе
              Обещают гораздо более быструю загрузку всего

              Как-то можно это уже сейчас в shop script применить?

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

              Чтобы добавить комментарий, зарегистрируйтесь или войдите