Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON上的调用堆栈溢出。每个_Javascript_Jquery_Google Maps_Stack Overflow_Callstack - Fatal编程技术网

Javascript JSON上的调用堆栈溢出。每个

Javascript JSON上的调用堆栈溢出。每个,javascript,jquery,google-maps,stack-overflow,callstack,Javascript,Jquery,Google Maps,Stack Overflow,Callstack,我有一个JSON对象列表,我在其中循环,然后使用jQueryGMAP插件为该对象创建标记并将其添加到地图中 问题是,在每个浏览器中,我都会收到callstack溢出消息: 未捕获范围错误:超出最大调用堆栈大小 镀铬,以及 太多的递归 在Firefox中 我不知道为什么或如何修复它 这是我的代码: $('#map_canvas').gmap().bind('init', function (evt, map) { var webMethod = '<%= Navigation

我有一个JSON对象列表,我在其中循环,然后使用jQueryGMAP插件为该对象创建标记并将其添加到地图中

问题是,在每个浏览器中,我都会收到callstack溢出消息:

未捕获范围错误:超出最大调用堆栈大小

镀铬,以及

太多的递归

在Firefox中

我不知道为什么或如何修复它

这是我的代码:

$('#map_canvas').gmap().bind('init', function (evt, map) {
        var webMethod = '<%= NavigationHelper.GetFullUrl("Components/Services/storelocatorservice.asmx/GetStoresByAddress") %>';
        var webParam = '{ "address": "Vaartkom 31/9 3000 Leuven", "language": "<%= Sitecore.Context.Language.CultureInfo.TwoLetterISOLanguageName %>", "radius": "15" }';

        $.ajax({
            type: "POST",
            url: webMethod,
            data: webParam,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) {
                //$('#map_canvas').gmap('set', 'MarkerClusterer', new MarkerClusterer(map));
                addMarkers($.parseJSON(msg.d));
            }
        });
});

function addMarkers(json) {
        $.each(json, function (i, m) {
            $('#map_canvas').gmap('addMarker', {
                'title': m.Name,
                'position': new google.maps.LatLng(m.Lat, m.Long),
                'name': m.Name,
                'zipcode': m.ZipCode,
                'id': m.LocationId,
                'bounds': true
            }).click(function () {
                $('#map_canvas').gmap('openInfoWindow', {
                    'content': '<h3>' + m.Name + '</h3><p>' + m.ZipCode + '</p><a onclick="getDirections(\'' + m.Id + '\')">Route</a>'
                }, this);
            });
        });
}

非常感谢您的帮助

我找到了一个修复方法,并不是说它修复了bug本身,而是防止了它的发生:
我必须设置边界:添加标记时为false,这样它就不会溢出调用堆栈。

+1在标题中使用单词overflow:-您知道JavaScript中的哪一行发生异常吗?是否在addMarkers$.parseJSONmsg.d上;还是别的地方?调试是很困难的,除非你设法在上复制这个问题。我已经在JSFIDLE上成功地重新创建了这个问题,而且这个问题似乎发生在我从gmap插件调用addmarker的那一刻。