特征检测通常优于浏览器嗅探。如果某些浏览器“支持”我正在使用的功能但 javascript 运行时太慢,我该怎么办?
我正在使用 d3 库进行一些复杂的可视化。可视化在 chrome / firefox 中非常流畅,在 IE9 中可以接受,但在 IE8 中运行缓慢。我想向 IE8 用户显示一个横幅,告诉他们升级,并向 IE9 用户显示一个通知横幅,它会在 chrome 或 FF 中更快。通过用户代理嗅探来做这件事是不是很糟糕?
特征检测通常优于浏览器嗅探。如果某些浏览器“支持”我正在使用的功能但 javascript 运行时太慢,我该怎么办?
我正在使用 d3 库进行一些复杂的可视化。可视化在 chrome / firefox 中非常流畅,在 IE9 中可以接受,但在 IE8 中运行缓慢。我想向 IE8 用户显示一个横幅,告诉他们升级,并向 IE9 用户显示一个通知横幅,它会在 chrome 或 FF 中更快。通过用户代理嗅探来做这件事是不是很糟糕?
为什么不测量浏览器计算复杂事物所花费的时间,类似于您想要做的事情,并为其设置阈值时间?
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';
}
}