【问题标题】:console.time() in IE8 Developer ToolsIE8 开发者工具中的 console.time()
【发布时间】:2010-08-18 20:43:08
【问题描述】:

有没有等价于

console.time('');
console.timeEnd('');

在 IE8 开发者工具中?

【问题讨论】:

    标签: internet-explorer ie-developer-tools


    【解决方案1】:

    没有,但您可以使用 JavaScript 轻松定义:

    // console.time implementation for IE
    if(window.console && typeof(window.console.time) == "undefined") {
        console.time = function(name, reset){
            if(!name) { return; }
            var time = new Date().getTime();
            if(!console.timeCounters) { console.timeCounters = {}; }
            var key = "KEY" + name.toString();
            if(!reset && console.timeCounters[key]) { return; }
                console.timeCounters[key] = time;
            };
    
        console.timeEnd = function(name){
            var time = new Date().getTime();
            if(!console.timeCounters) { return; }
            var key = "KEY" + name.toString();
            var timeCounter = console.timeCounters[key];
            var diff;
            if(timeCounter) {
                diff = time - timeCounter;
                var label = name + ": " + diff + "ms";
                console.info(label);
                delete console.timeCounters[key];
            }
            return diff;
        };
    }
    

    在你想使用console.time()和console.timeEnd()之前把它放在你的JS文件中。

    这不是我的代码,我实际上是从 Firebug 核心复制的。

    【讨论】:

    • 第一个条件对我不起作用,你的意思是 if(window.console && typeof(window.console.time) == "undefined")?
    • 因为这是 IE8,它只在 Windows 上运行,请记住这个操作系统上的计时器可能不准确(取决于版本)。请参阅calendar.perfplanet.com/2010/bulletproof-javascript-benchmarks(尤其是“不准确的毫秒计时器”部分)。
    【解决方案2】:

    如果你想在 IE 中使用 Firebug,有一个名为 Firebug Lite 的版本,可以在任何浏览器中作为“书签”使用。

    http://getfirebug.com/firebuglite

    它的功能不如实物,但它可以做很多事情,所以值得一试。

    【讨论】:

    • 确认 Firebug Lite 支持 console.time。很惊讶这没有更多的赞成票。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    • 2010-12-09
    • 1970-01-01
    • 2011-02-17
    • 2011-01-27
    • 1970-01-01
    相关资源
    最近更新 更多