У меня есть большие данные для обработки.Они должны быть классифицированы на 4 цвета и отрисованы в SVG.
Моя функция: (параметр ABC используется, чтобы что-то сделать ....)
function mapRender(dataArray,A,B,color1,color2,color3,color4,C){
//......do somthing.......
var colorPlusAry = $.grep(dataArray, function(item,key){
var vote_percentage = parseInt(item.vote_percentage);
var result = vote_percentage>=0 && vote_percentage <50;
return result;
});
//......do somthing.......
}
Я использую grepдля генерации нового массива, элемент которого имеет тот же цвет, и рендеринга в SVG.
function colorDistrict(colorArray,color){
var village = '';
var fillColor = 'fill:'+color;
for(var item in colorArray) {
village = colorArray[item].village;
$('svg').find('path').each(function(){
var id = $(this).attr('id');
if(village) {
if(id.substring(6) === village){
$(this).attr('style',fillColor);
}
}
});
}
}
colorDistrict(colorPlusAry,color1); //Render 4 array
Он работает успешно, но данные слишком велики и делают рендеринг медленным, когда я запускаю функцию, требуется несколькосекунды, чтобы среагировать ... Как я могу оптимизировать эту функцию для рендеринга цвета?