功能檢測通常優於瀏覽器嗅探。在某些瀏覽器「支持」我正在使用的功能但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';
}
}
你可以要求他們使用chromeframe,對於初學者:https://developers.google.com/chrome/chrome-frame/ – PlantTheIdea 2013-03-05 21:46:35
好點;值得在橫幅中包含該鏈接。沒有解決我什麼時候顯示橫幅的問題(除非我只是使用任何版本的IE顯示給大家,這似乎有點笨重) – spike 2013-03-05 21:48:16
哦,它不是爲了解決問題,它只會減少可能會遇到它的人數。我將它展示給在我的網站上使用IE的每個人,他們似乎並不介意。比使用IE8的Javascript渲染器更好。 :) – PlantTheIdea 2013-03-05 21:49:48