Javascript 谷歌地图标记上的慢循环

Javascript 谷歌地图标记上的慢循环,javascript,google-maps-api-3,Javascript,Google Maps Api 3,我有一个关于谷歌地图标记和javascript的问题 我有一个页面,只有一个div(map_canvas),当你点击它时,它会创建一个标记,还有一个文本字段,你在其中输入一个标记的名称,标记开始反弹 为了跟踪标记,我添加了一个所有标记的数组。问题是,当它达到20+个标记时,UI往往会变得无响应,而其循环 这是我的循环,它在一个函数中,以标记id作为参数 for (var i=0; i < markers.length; i++) { if(markers[i].id ==

我有一个关于谷歌地图标记和javascript的问题

我有一个页面,只有一个div(map_canvas),当你点击它时,它会创建一个标记,还有一个文本字段,你在其中输入一个标记的名称,标记开始反弹

为了跟踪标记,我添加了一个所有标记的数组。问题是,当它达到20+个标记时,UI往往会变得无响应,而其循环

这是我的循环,它在一个函数中,以标记id作为参数

for (var i=0; i < markers.length; i++) {
        if(markers[i].id == id)
        {
            if(markers[i].getAnimation() != null)
            {
                markers[i].setAnimation(null);
            }
            else
            {
                markers[i].setAnimation(google.maps.Animation.BOUNCE);
            }
        }
        else
            markers[i].setAnimation(null);
    }
for(变量i=0;i

请让我知道,如果这是一个重新张贴或如果我应该提供更多的信息。。。这是我的第一个问题

我建议在代码中添加步骤/断点,但不确定您所处的编码环境…..如果您只是使用纯html,我建议使用firebug使用断点逐步完成代码,因为这将允许您查看代码中的问题。我猜它与代码有关


如果你已经这样做了,我对你的问题相当困惑,为什么它会在20个或更多的标记上停止工作……如果它与代码无关,我会大胆猜测它与谷歌的api有关,因为我遇到了一些真正奇怪的情况,一旦你在某些事情上超过了它们的最大值,尽管我还没有经历过最大标记位置以前,我做过一些类似于您正在做的事情,但在asp环境中使用了更多标记。

我建议使用
id
作为
markers
数组中的索引,这样您就可以直接访问每个标记,而不是循环查找它。一旦你有了一个“当前”标记,记下它是哪一个,以便你知道当你开始下一个标记反弹时,哪一个停止反弹

var lastmarker;
...    
if (lastmarker) {markers[lastmarker].setAnimation(null)}
markers[id].setAnimation(google.maps.Animation.BOUNCE);
lastmarker=id;

当然,此建议的可行性取决于您的代码的其余部分,我们对此一无所知。

您可能需要澄清,您所说的UI在循环时往往会变得无响应。弹跳是否停止或地图是否不显示等。地图在循环时不响应。。。如果您尝试单击地图并在地图周围移动,当循环查找标记时,它将不会响应您是否在将动画设置到标记后重置地图?此外,您是从所有标记开始,还是通过某种界面逐个添加标记?它会在您单击地图画布时创建标记,我从0标记开始,并在用户单击地图时添加它们