продолжаю колупаться с этой фигней, и короче я не пойму почему так медленно, юзаю jsdom.
Из за чего когда добавляю выборку элементов из не большого блока скорость перебора с 10 секунд увеличиваеться до 900 сек?
И какой есть более быстрый парсер для ноды?
function matchDataToObj ( html, callback ) {
jsdom.env( html, function ( err, window ) {
var blocks = $( window, "li"), // проблема с перебором блока с 1600 li
matches = [];
for( var i = 0; i < blocks.length; i++ ) {
matches.push( renderDataToObj ( blocks[i] ) );
}
callback ( matches );
} );
};
function renderDataToObj ( block ) {
var obj = {};
teams = block.getElementsByClassName( "team__link" ), // после добавления этой измения не критичны
icons = block.getElementsByClassName( "team__icon" ), // тормоза начинаються из за этй строки
matchUrl = clearPath( block.getElementsByTagName ( "a" )[0].href ); // и этой
obj.startTime = block.getAttribute( "data-start-time" );
obj.leagueID = block.getAttribute( "data-league-id" );
obj.matchURL = path.join ( urlLeague, matchUrl );
obj.teams = {
first: clearPath( teams [0].textContent ),
second: clearPath( teams [1].textContent )
};
obj.icon = {
firstTeam: path.join ( urlLeague, getImgSrc ( icons [ 0 ] ) ),
secondTeam: path.join ( urlLeague, getImgSrc ( icons [ 1 ] ) )
};
return obj;
};
function clearPath ( path ) {
return path.replace( /^(file:\/)|\s/gi, "" );
}
function getImgSrc ( el ) {
return clearPath( el.getElementsByTagName ( "img" )[0].src );
}