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