2012-07-08 31 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