4

特征检测通常优于浏览器嗅探。如果某些浏览器“支持”我正在使用的功能但 javascript 运行时太慢,我该怎么办?

我正在使用 d3 库进行一些复杂的可视化。可视化在 chrome / firefox 中非常流畅,在 IE9 中可以接受,但在 IE8 中运行缓慢。我想向 IE8 用户显示一个横幅,告诉他们升级,并向 IE9 用户显示一个通知横幅,它会在 chrome 或 FF 中更快。通过用户代理嗅探来做这件事是不是很糟糕?

4

1 回答 1

2

为什么不测量浏览器计算复杂事物所花费的时间,类似于您想要做的事情,并为其设置阈值时间?

function detectBrowserSpeed(){

    var i,
        slowThreshold = 100; // milliseconds
        startMillis = + new Date(); //The + is to 'force' casting to an integer representing EPOCH milliseconds. If + is ommited, then I get an instance of Date.

    //Do something complex here:
    for (i=0;i<100000;i+=0.1){

    }

    var elapsed = (+ new Date()) - startMillis;
    if(elapsed > slowThreshold){
        return 'slow';
    }else{
        return 'fast'; 
    }

}
于 2013-03-05T22:01:16.377 回答