将标记延迟加载到Google Maps Javascript API地图的策略

时间:2010-06-30 20:16:20

标签: javascript google-maps google-maps-api-3 lazy-loading

我正在构建一个ASP.NET MVC网站,我想要一个Google Maps Javascript API地图,显示通过AJAX从我的后端加载的标记。

由于我不希望客户端遇到内存问题,我想延迟加载标记并将它们应用到Fluster2以将它们放入集群。我认为延迟加载标记的最佳方法是在Map的idle事件中添加一个事件监听器,该事件发生在平移或缩放地图之后。


这是我目前的策略:

  1. 将事件监听器添加到idle事件。
  2. 当抛出idle事件时,使用jQuery对我的后端进行AJAX HTTP POST调用,提供地图的当前视口/边界。
  3. 后端返回视口内的所有点。
  4. 将点创建为标记并添加到Fluster2,将其添加到地图中。旧点不会被丢弃。
  5. 重复

  6. 然而,这可能会产生问题,因为旧点不会被丢弃。我不想丢弃它们,因为我不想再次加载它们,但根据我目前的策略,我会再次加载它们并再次为它们创建标记。

    虽然我认为以某种方式告诉AJAX调用中的后端我已经有了一些标记并不是一个好主意,但实现某种不允许重复的哈希表会很好

    这样,当我加载点时,我可以先尝试将它们添加到哈希表中:如果成功,我还没有显示它们,所以我可以将它们添加为标记;如果它失败了,它们已经在地图上了。


    这是一个好策略吗?如果是这样,我怎样才能实现不允许重复的哈希表?

1 个答案:

答案 0 :(得分:3)