0

我是 Google Maps API 的新手,刚刚接管了一个 RoR 应用程序,该应用程序使用 MarkerClusterer 在地图上绘制多达 2,000 个标记,每个标记都有一个关联的信息窗口。

当前实现在 JavaScript 中创建一个信息窗口内容字符串数组,并将 JavaScript 下载到浏览器。未压缩(没有服务器内容压缩),数组和 Javascript 可以大到 9 MB。

我发现与此实现相关的性能瓶颈是: 1. 在服务器上创建 2000 个字符串并将它们放入 JavaScript 数组的时间。(~4-5 秒) 2. 在发送到浏览器之前,服务器上压缩数兆字节 JavaScript 的时间。(~2-3 秒)

我最初的想法是为包含所有 HTML 格式的 infowindow 内容字符串创建一个模板,以便 infowindow 内容数组中包含的唯一数据是要显示的实际原始数字。这应该会大大减少在服务器上组装内容字符串数组的计算时间,并相应地减少数组在浏览器中消耗的内存。此外,一次只需要打开一个信息窗口。

由于不熟悉 Google Maps v3 API,我正在寻找有关这是否是最佳优化策略的任何指导。并且,任何指向实现此类策略的代码示例的指针。

提前致谢,

-斯科特

4

1 回答 1

0

我认为您不应该在阵列中加载所有 2000 个数据集,而是执行以下两种选择之一:

  1. 您只加载标记和当前视口中的信息窗口。
  2. 单击标记时,您通过 ajax 加载信息窗口内容。
于 2011-09-21T07:03:49.540 回答