Я создаю сайт MVC ASP.NET, где я хочу иметь Google Maps JavaScript карта API, которая показывает маркеры, загруженные от моего бэкенда до Ajax.
Поскольку я не хочу, чтобы клиент столкнулся с проблемами памяти, я хочу к ленивой загрузке маркеры и применяю их к Fluster2 для помещения их в кластеры. Я думаю лучший способ к ленивой загрузке, маркеры должны добавить слушателя события idle
событие Карты, которая происходит после карты, панорамируется или масштабируется.
Вот моя текущая стратегия:
idle
событие.idle
событие брошено, используйте jQuery для создания Ajax HTTP POST
звоните в мой бэкенд, предоставляя текущую область просмотра/границы карты.Однако это может создать проблемы, поскольку старые точки не отбрасываются. Я не хочу отбрасывать их, поскольку я не хочу загружать их снова, но с моей текущей стратегией, я загрузил бы их во второй раз и создал бы маркеры для них во второй раз.
В то время как я думаю, что это не хорошая идея так или иначе сказать бэкенду в вызове Ajax, что у меня уже есть некоторые маркеры, было бы хорошо реализовать своего рода хеш-таблица, которая не позволяет дубликаты.
Тот путь, когда я загружаю точки, я могу попытаться добавить их к хеш-таблице сначала: если это успешно выполняется, я еще не отобразил их, таким образом, я могу добавить их как маркеры; если это перестало работать, они уже находятся на карте.
Действительно ли это - хорошая стратегия? Если так, как я могу реализовать хеш-таблицу, которая не позволяет дубликаты?