2012-07-08 33 views
0

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

   (..) // 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; 
    } 

回答

0

它看起来像你对我是静态加载的标记在页面中。如果要使用AJAX技术(异步)加载标记,页面加载速度会更快。

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

+0

我只需要从数据库中加载一次标记,在地图上绘制所有标记,并且全部使用标记 - 其他作业使用界限值,并且我需要尽可能快地获取此值,而不需要等待10秒(当然2-3秒等待是可以接受的)。 AJAX会改善这种等待时间吗?老实说,我从来不使用AJAX,我不知道如何将它引入我的脚本。您能否使用ajax加载标记来说明更多关于此解决方案的内容? – whoah 2012-07-09 06:39:00

+0

你读过迈克威廉姆斯的页面吗?如果没有帮助,请尝试[this](https://www.google.com/search?btnG=1&pws=0&q=AJAX+Asynchronous+Javascript+and+Xml),但它不会缩短得到结果,只是显示地图的时间。问题在于,将所有标记信息静态放置在页面中会增加页面的大小,从而增加呈现时间。 – geocodezip 2012-07-09 12:55:40