Почему карта Google замораживает страницу после нескольких постбэков

#c# #javascript #asp.net #google-maps #updatepanel

#c# #javascript #asp.net #google-карты #updatepanel

Вопрос:

У меня возникла самая странная проблема. Я не могу понять, почему карта Google на сайте, который я создаю, медленно замораживает страницу примерно после 5 или 6 постбэков. В настоящее время я использую календарь на панели обновления, а кнопки «Назад» и «Далее» заставляют карту Google делать странные вещи. Я удалил панель обновления, и она по-прежнему выполняет то же самое. Примерно после 3 щелчков значок маркера начинает медленно размываться и в конечном итоге становится черным. Это сводит меня с ума. Любые мысли были бы действительно полезны. Спасибо. Ссылка на страницу с проблемойhttp://adkrenter.com/properties/106-plum-poppy-north и это происходит как в ie, так и в Firefox.

Комментарии:

1. Я не могу воспроизвести ошибку, можете ли вы провести нас шаг за шагом?

2. Если вы нажмете кнопку «Далее» один раз, затем предыдущую кнопку, а затем следующую кнопку, примерно через 4 раза все начнет сбиваться. Посмотрите на значки маркеров, они медленно становятся пикселизированными, затем становятся черными, затем страница просто начинает зависать. У меня был следующий набор на 5 лет вперед, но к 5-му году это было сделано.

Ответ №1:

Ваша основная проблема заключается в том, что при каждом нажатии на Prev или Next вы добавляете в 3 раза больше предыдущего количества маркеров на карту в том же месте.

Я не могу сказать вам, почему это происходит (или как это исправить), не увидев больше кода (это болезненный переход по исходному коду страницы, поэтому, если бы вы могли опубликовать какой-нибудь релевантный код для того, что вы делаете при нажатии, это могло бы помочь)

Обновить

Я просмотрел ответ примерно через 7-10 кликов, и он огромный (условно говоря, первоначальный ответ составляет всего несколько 10 КБ), 168 КБ, из которых 143 КБ — это JavaScript-код для добавления одного и того же маркера к двум картам на странице — по 162 раза на каждую! Неудивительно, что страница зависает.

Это часть ответа:

 var GoogleMap1 = new Artem.Web.GoogleMap({"Address":"106 Plum Poppy North, Malta , NY, 12020","BaseCountryCode":null,"ClientID":"ctl05_GoogleMap1","ClientMapID":"GoogleMap1","DefaultAddress":null,"DefaultMapView":0,"Directions":[],"EnableContinuousZoom":false,"EnableDoubleClickZoom":false,"EnableDragging":true,"EnableGoogleBar":false,"EnableInfoWindow":true,"EnableMarkerManager":false,"EnableReverseGeocoding":false,"EnableScrollWheelZoom":false,"EnterpriseKey":null,"Height":"130px","IsStreetView":false,"IsStatic":false,"Key":"ABQIAAAATFt6mjpmHxeLQ689NDV5WhTHwM4h-1LWnzPqjMrWYJQMyFF86hTACw-YJNmRQV0Dk4jcB3zQHvdUsw","Latitude":42.968839,"Longitude":-73.777681,"MapEvents":{},"MarkerEvents":{},"MarkerManagerOptions":{"borderPadding":null,"maxZoom":null,"trackMarkers":null},"PolygonEvents":{},"PolylineEvents":{},"ShowMapTypeControl":false,"ShowScaleControl":false,"ShowTraffic":false,"StreetViewMode":0,"StreetViewPanoID":null,"Width":"190px","Zoom":14,"ZoomPanType":0});
GoogleMap1.addMarker({"Address":"106 Plum Poppy North, Malta , NY, 12020","AutoPan":true,"Bouncy":false,"Clickable":true,"Draggable":false,"DragCrossMove":false,"IconAnchor":{"X":0,"Y":0},"IconSize":{"Height":0,"Width":0},"IconUrl":null,"InfoWindowAnchor":{"X":0,"Y":0},"Latitude":42.968839,"Longitude":-73.777681,"MaxZoom":null,"MinZoom":null,"OpenInfoBehaviour":0,"ShadowSize":{"Height":0,"Width":0},"ShadowUrl":null,"Text":null,"Title":null});
GoogleMap1.addMarker({"Address":"106 Plum Poppy North, Malta , NY, 12020","AutoPan":true,"Bouncy":false,"Clickable":true,"Draggable":false,"DragCrossMove":false,"IconAnchor":{"X":0,"Y":0},"IconSize":{"Height":0,"Width":0},"IconUrl":null,"InfoWindowAnchor":{"X":0,"Y":0},"Latitude":42.968839,"Longitude":-73.777681,"MaxZoom":null,"MinZoom":null,"OpenInfoBehaviour":0,"ShadowSize":{"Height":0,"Width":0},"ShadowUrl":null,"Text":null,"Title":null});
GoogleMap1.addMarker({"Address":"106 Plum Poppy North, Malta , NY, 12020","AutoPan":true,"Bouncy":false,"Clickable":true,"Draggable":false,"DragCrossMove":false,"IconAnchor":{"X":0,"Y":0},"IconSize":{"Height":0,"Width":0},"IconUrl":null,"InfoWindowAnchor":{"X":0,"Y":0},"Latitude":42.968839,"Longitude":-73.777681,"MaxZoom":null,"MinZoom":null,"OpenInfoBehaviour":0,"ShadowSize":{"Height":0,"Width":0},"ShadowUrl":null,"Text":null,"Title":null});
//repeated a few hundred times

GoogleMap2.addMarker({"Address":"106 Plum Poppy North, Malta , NY, 12020","AutoPan":true,"Bouncy":false,"Clickable":true,"Draggable":false,"DragCrossMove":false,"IconAnchor":{"X":0,"Y":0},"IconSize":{"Height":0,"Width":0},"IconUrl":null,"InfoWindowAnchor":{"X":0,"Y":0},"Latitude":42.968839,"Longitude":-73.777681,"MaxZoom":null,"MinZoom":null,"OpenInfoBehaviour":0,"ShadowSize":{"Height":0,"Width":0},"ShadowUrl":null,"Text":null,"Title":null});
GoogleMap2.addMarker({"Address":"106 Plum Poppy North, Malta , NY, 12020","AutoPan":true,"Bouncy":false,"Clickable":true,"Draggable":false,"DragCrossMove":false,"IconAnchor":{"X":0,"Y":0},"IconSize":{"Height":0,"Width":0},"IconUrl":null,"InfoWindowAnchor":{"X":0,"Y":0},"Latitude":42.968839,"Longitude":-73.777681,"MaxZoom":null,"MinZoom":null,"OpenInfoBehaviour":0,"ShadowSize":{"Height":0,"Width":0},"ShadowUrl":null,"Text":null,"Title":null});
GoogleMap2.addMarker({"Address":"106 Plum Poppy North, Malta , NY, 12020","AutoPan":true,"Bouncy":false,"Clickable":true,"Draggable":false,"DragCrossMove":false,"IconAnchor":{"X":0,"Y":0},"IconSize":{"Height":0,"Width":0},"IconUrl":null,"InfoWindowAnchor":{"X":0,"Y":0},"Latitude":42.968839,"Longitude":-73.777681,"MaxZoom":null,"MinZoom":null,"OpenInfoBehaviour":0,"ShadowSize":{"Height":0,"Width":0},"ShadowUrl":null,"Text":null,"Title":null});
GoogleMap2.addMarker({"Address":"106 Plum Poppy North, Malta , NY, 12020","AutoPan":true,"Bouncy":false,"Clickable":true,"Draggable":false,"DragCrossMove":false,"IconAnchor":{"X":0,"Y":0},"IconSize":{"Height":0,"Width":0},"IconUrl":null,"InfoWindowAnchor":{"X":0,"Y":0},"Latitude":42.968839,"Longitude":-73.777681,"MaxZoom":null,"MinZoom":null,"OpenInfoBehaviour":0,"ShadowSize":{"Height":0,"Width":0},"ShadowUrl":null,"Text":null,"Title":null});
GoogleMap2.addMarker({"Address":"106 Plum Poppy North, Malta , NY, 12020","AutoPan":true,"Bouncy":false,"Clickable":true,"Draggable":false,"DragCrossMove":false,"IconAnchor":{"X":0,"Y":0},"IconSize":{"Height":0,"Width":0},"IconUrl":null,"InfoWindowAnchor":{"X":0,"Y":0},"Latitude":42.968839,"Longitude":-73.777681,"MaxZoom":null,"MinZoom":null,"OpenInfoBehaviour":0,"ShadowSize":{"Height":0,"Width":0},"ShadowUrl":null,"Text":null,"Title":null});
//repeated a few hundred times

GoogleMap2.load();
  

Я не знаком с .NET и C #, поэтому я не могу особо помочь, поскольку я не знаю, как работает эта «панель обновления». Но, похоже, проблема заключается в сервере — он отправляет обратно тот же маркер с количеством, которое, похоже, растет геометрически — входящее количество маркеров в 3 раза превышает предыдущее количество маркеров.

Комментарии:

1. Гениально. Спасибо. Я не знаю причину дополнительных дополнений. Мне придется это отследить. Спасибо за начало.