У меня есть вопрос о производительности загрузки с объектов DOM. Во-первых у меня есть массив длиной 9540, что-то вроде этого:Производительность DOM в Javascript
{"Id":144412,"GisX":55.50963,"GisY":9.77794}`)
Проблема не петля, но проблема в том, то я загрузить все события нажатия на DOM, который принимает 1200ms в Chrome (IE занимает 8700 мс), проблема в Leafletjs с использованием markerCluster. Но любая идея увеличить производительность.
for (var i = 0, obj; (obj = MarkerArrayDefs[i]); i++) {
setMarker(obj.Id, obj.GisX, obj.GisY, i);
} //The for loop takes: 151.000ms
var markerList = [];
function setMarker(propId, lat, lng) {
//var marker = new L.Marker([lat, lng]);
var marker = new L.Marker([lat, lng], {
icon: customIcon
}).on('click', function() {
var markeren = this;
var popup = L.popup({
offset: (new L.Point(-10, -47))
}).setLatLng(markeren.getLatLng()).setContent('<div><span style="color: #4a6b0e; font-weight: bold;">Henter</span><br><img alt="Progress" src="' + ol.url("~/Content/Css/images/mapWaiting.gif") + '" id="imgProg"/></div>').openOn(folia.map);
$.get(ol.url('~/ControllerHelper/MapContent/'), {
id: propId,
callType: searchfilters.ItemType
}, function (data) {
popup.setContent(data);
});
});
markerList.push(marker);
return false;
}
markers.addLayers(markerList); //This takes: 0.000ms.
map.addLayer(markers); // This is the problem: 1200.000ms
Update Я пытался использовать предложения, данные мне, но там не много прироста производительности See JSFiddle exampleThis is the start point
Я оставляю новое на javascript. Поэтому я не уверен, что нужно перенести onclick моих маркеров. Нет, если это руководство, о котором нужно это сделать. – mortenstarck
Для примера см. [Это сообщение] (http://stackoverflow.com/questions/9914587/javascript-event-delegation-handling-parents-of-clicked-elements). Для этого также доступно много [онлайн-ресурсов] (https://www.google.com/search?q=javascript+handle+click+on+parent+element). – ErikE