判定瀏覽器是支援JIT

來源:互聯網
上載者:User

這來源於一個非常現實的效能測試需求。要知道IE(除了剛誕生的IE9),其他出名的瀏覽器都支援JIT技術來提高代碼的執行能力,那麼我們進行效能測試時,通常會對某個函數的幾個實現迴圈執行10000次來評估其優劣。但10000次有時對IE來說太多了,幾乎不可能的計算量就把它down掉了,對於一些舊點的標準瀏覽器也是如此,因此這個迴圈次數不能死定為一個數量級。這個量化標準我就規定為瀏覽器是否支援JIT,是就讓它迴圈數多一點,不是就少一點。不過怎麼判定它是否支援呢?雖然過度最佳化,可能會帶來一些神奇的bug,但它們也很快會被瀏覽器修正掉。唯一的辦法就是到它們的官網查看它們是在哪個版本加入這支援了。

  (function(){    //by 司徒正美 http://www.cnblogs.com/rubylouvre/    this.dom = {};    var ver =parseFloat(((/(?:rv\:|ari\/|sto\/)(\d+\.\d+(\.\d+)?)/.      exec(navigator.userAgent) || [,0])[1]).toString().replace(/[^\d\.]/g, "").      replace(/^(\d+\.\d+)(\.(\d+))?$/,"$1$3"));    dom.jit = document.documentMode === 9 ||// IE 9+    this.crypto && ver > 1.9 ||// firefox 3.5+(1.91)    this.opera && this.opera.version()*1 >= 10.5 ||// opera10.50+    navigator.vendor && ver >= 528 || !1 // safari 4+, chrome 2+  })();

<br /> (function(){<br /> //by 司徒正美 http://www.cnblogs.com/rubylouvre/<br /> this.dom = {};<br /> var ver =parseFloat(((/(?:rv\:|ari\/|sto\/)(\d+\.\d+(\.\d+)?)/.<br /> exec(navigator.userAgent) || [,0])[1]).toString().replace(/[^\d\.]/g, "").<br /> replace(/^(\d+\.\d+)(\.(\d+))?$/,"$1$3"));<br /> dom.jit = document.documentMode === 9 ||// IE 9+<br /> this.crypto && ver > 1.9 ||// firefox 3.5+(1.91)<br /> this.opera && this.opera.version()*1 >= 10.5 ||// opera10.50+<br /> navigator.vendor && ver >= 528 || !1 // safari 4+, chrome 2+</p><p> })()<br /> alert(dom.jit)<br />

運行代碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.