Показать сообщение отдельно
  #16 (permalink)  
Старый 16.09.2014, 19:25
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

продолжаю колупаться с этой фигней, и короче я не пойму почему так медленно, юзаю 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 );
    }
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием