با سلام،
برای پیاده سازی نمایش تمام موقعیتهای ثبت شده بر روی نقشه، وقتی که از رخداد moveend بر روی نقشه استفاده میشه، ظاهرا یک بار درخواست ajax به سرور ارسال میشه و موقعیتهای ثبت شده بدرستی نمایش داده میشود. ولی وقتی از رخداد zoomend استفاده میشه و کاربر زوم میکنه، ظاهرا درخواست ajax بارها ارسال میشه و مرورگر هنگ میکنه. برای رفع این مشکل چکار باید کرد؟
getAllLocations(); // When the page is loaded.
map.on('moveend', function() { // When the page is moved.
getAllLocations();
});
map.on('zoomend', function() { // When the page is zoomed in or out
getAllLocations();
});
function getAllLocations() {
var northLine = map.getBounds().getNorth();
var westLine = map.getBounds().getWest();
var southLine = map.getBounds().getSouth();
var eastLine = map.getBounds().getEast();
$.ajax({
url: 'process/searchAll.php',
type: 'POST',
data: {
nl: northLine,
sl: southLine,
el: eastLine,
wl: westLine
},
success: function(r) {
var myArr = JSON.parse(r);
$.each(myArr, function(index, val) {
L.marker([val.lat, val.lng]).addTo(map).bindPopup(val.title).openPopup();
});
}
});
}
سلام و احترام
به جای درخواست ajax یک console.log بزارید و ببنیید با هر بار zoom کردن چند بار اجرا میشه و نتیجه رو اعلام کنید
کد رو به این شکل اجرا کردید؟
map.on('zoomend', function() { // When the page is zoomed in or out
console.log('test');
});
جای این یه تیکه کد console.log رو قرار بدید و زوم کنید ببنید چند بار اجرا میشه، آیا هر بار زوم تموم میشه اجرا میشه