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;
}
我只需要從數據庫中加載一次標記,在地圖上繪製所有標記,並且全部使用標記 - 其他作業使用界限值,並且我需要儘可能快地獲取此值,而不需要等待10秒(當然2-3秒等待是可以接受的)。 AJAX會改善這種等待時間嗎?老實說,我從來不使用AJAX,我不知道如何將它引入我的腳本。您能否使用ajax加載標記來說明更多關於此解決方案的內容? – whoah 2012-07-09 06:39:00
你讀過邁克威廉姆斯的頁面嗎?如果沒有幫助,請嘗試[this](https://www.google.com/search?btnG=1&pws=0&q=AJAX+Asynchronous+Javascript+and+Xml),但它不會縮短得到結果,只是顯示地圖的時間。問題在於,將所有標記信息靜態放置在頁面中會增加頁面的大小,從而增加呈現時間。 – geocodezip 2012-07-09 12:55:40