Google Chrome console.log кешируется? - PullRequest
       13

Google Chrome console.log кешируется?

1 голос
/ 23 августа 2011

Иногда, когда я использую объекты внутри usercript и использую расширение TamperMonkey для его запуска, функция chrome's console.log() кэшируется.
Код, который влияет именно на это. Два console.log(save); всегда печатают одинаково, хотя воля никогда не будет одинаковой. Однако, если я изменю console.log(save[testID]['lastCheck']);, он будет печататься иначе.

function parseTestOverview(DOM)
{
    console.log(save);
    save[testID]['lastCheck'] = Date.now();
    var attempts = DOM.getElementsByClassName('answered');
    if(attempts.length == 0)
    {
        save[testID]['attempts'] = undefined;
        save[testID]['lastAttempt'] = undefined;
        save[testID]['lastAttempts'] = undefined;
        save[testID]['updated'] = false;
    }
    else if(save['lastAttempts'] || save['lastAttempts'] < attempts.length)
    {
        save[testID]['attempts'] = parseAttempts(attempts);
        var dateString = attempts[attempts.length - 1].innerText
            var dateTime = dateString.split(' ');
        var date = dateTime[0].split('-');
        var time = dateTime[1].split(':');
        save[testID]['lastAttempt'] = (new Date(date[2], date[1] - 1, date[0], time[0], time[1])).getTime();
        save[testID]['lastAttempts'] = attempts.length;
        save[testID]['updated'] = false;
    }
    else
    {
        save[testID]['updated'] = true;
    }
    GM_setValue('save', save);
    console.log(save);
    return attempts;
}

Это не может быть вне контекста, поэтому вот весь сценарий: http://pastebin.com/u1qqCrt2

Это также может не иметь никакого смысла, потому что это скрипт для конкретного сайта.

Я использую 15.0.859.0 канарейку на Mac OS X 10.7.1

1 Ответ

1 голос
/ 30 мая 2012

Это связано с тем, что webkit показывает значение объекта, только когда он развернут в консоли, а не при его печати. ​​

См. Также: https://stackoverflow.com/a/8249333/640584

...