来自hiddenfield的值显示非常缓慢

时间:2012-07-08 20:15:01

标签: javascript asp.net google-maps google-maps-api-3

我有一个问题。如何在下面的脚本中提高获取值的速度? 我的脚本设置了170个标记,稍后在地图变化时(空闲事件)获取地图边界的值lng和lat,并将此值发送到hiddenfield。对于10-20-30个标记,此值显示非常快,但对于+100标记,此功能非常慢,并且当地图发生变化时显示所有值需要5-6秒..我正在使用标记clusterer,但速度没有影响。如何改善这个? 问候!

                (..) // map options
                var map = new google.maps.Map(document.getElementById("mapka"), mapOptions);

                var markers = [];

                var lngstring = <%=lngstring %>
                var latstring = <%=latstring %>
                //alert(latstring);
                //alert(lngstring);
                var arraylat = latstring.split("#");
                var arraylng = lngstring.split("#");

                for (var i = 0; i < arraylng.length-1; i++) {
                var marker = new google.maps.Marker({
                    position: new google.maps.LatLng(arraylng[i], arraylat[i])
                    });
                markers.push(marker);
                }
                var markerCluster = new MarkerClusterer(map, markers);

                google.maps.event.addListener(map, 'idle', function () {
                var bounds = map.getBounds();
                var nelat = bounds.getNorthEast().lat();
                var nelng = bounds.getNorthEast().lng();
                var swlat = bounds.getSouthWest().lat();
                var swlng = bounds.getSouthWest().lng();
                var c1 = map.getCenter().lat();
                var c2 = map.getCenter().lng();
                var zoom1 = map.getZoom();
                document.getElementById("<%=hfNelat.ClientID%>").value = nelat;
                document.getElementById("<%=hfNelng.ClientID%>").value = nelng;
                document.getElementById("<%=hfSwlat.ClientID%>").value = swlat;
                document.getElementById("<%=hfSwlng.ClientID%>").value = swlng;
                document.getElementById("<%=UpdateButton1.ClientID %>").click();
                });

代码“背后”:

    protected void UpdateButton_Click(object sender, EventArgs e)
    {
        lNelat.Text = hfNelat.Value;
        lNelng.Text = hfNelng.Value;
        lSwlat.Text = hfSwlat.Value;
        lSwlng.Text = hfSwlng.Value;
    }

1 个答案:

答案 0 :(得分:0)

在我看来,您正在页面中静态加载标记。如果您使用AJAX技术(异步)加载标记,页面加载速度会更快。

请参阅Mike Williams的v2教程中的The AJAX Philosophy page