W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
今天在公交車上,突然想到一個問題。具體是這個樣子的。
JQuery從1.9版本開始廢棄了一個對象$.browser
。此對象在jq1.9之前的版本中,常用于瀏覽器的檢測,比如
$.browser.msie;
$.browser.safari;
$.browser.mozilla;
$.browser.opera;
...
可見,我們直接使用$.browser[browser-keyword]
即可方便的判斷當(dāng)前宿主瀏覽器是哪種瀏覽器,真是實用的特性啊。
但是如你所見,jquery從1.9版本開始竟然廢棄了這個對象。我當(dāng)時還真是一時想不明白,這到底是為何呢?jquery信奉的準(zhǔn)則不是簡單么,難道”write less, do more”是說著玩的?
后來仔細(xì)一想,不對啊。jquery這樣的成熟項目,不可能會做一些看起來腦殘的事情啊。經(jīng)過一番資料查閱,我終于悟了。
JQuery從1.9開始,使用$.support
來代替$.browser
。這么說其實也不準(zhǔn)確,應(yīng)該說廢棄了$.browser
,但是提供了一個新的對象,也就是$.support
。但是這個對象并不是為了判斷瀏覽器而產(chǎn)生的。準(zhǔn)確的說,它的用處是檢測瀏覽器特性的。
也就是說,jquery不再提供赤裸裸的瀏覽器種類判斷,而且轉(zhuǎn)向提供瀏覽器特性的判斷。另一方面,jquery的官方文檔中并不建議直接使用$.support
來進(jìn)行瀏覽器特性的判斷,而是推薦采用額外的第三方庫來做這個事(比如Modernizr),而這個$.support
對象,jquery更加傾向是jquery自己內(nèi)部使用的。
那么,jquery為何要做這樣的事情呢?
個人覺得最本質(zhì)的原因是這樣的,我們應(yīng)該以發(fā)展的眼光去看待事物。
世界萬物都是發(fā)展的,瀏覽器也是在不停的發(fā)展。如果我們只是將目光限定在瀏覽器種類的檢測上,那如果早先被人詬病的瀏覽器經(jīng)過發(fā)展,萬一變成業(yè)界的事實標(biāo)準(zhǔn),到時我們?yōu)g覽器檢測不是很尷尬?
另一方面,相對于瀏覽器種類檢測,瀏覽器特性檢測從某種程度上說更加靈活。
再者,我們需要檢測瀏覽器的原因往往是有一些特性在不同的瀏覽器上可能會有不同的實現(xiàn),有的瀏覽器支持,而有的瀏覽不支持。所以我們只檢測相關(guān)的瀏覽器特性不是更加理所應(yīng)當(dāng)?shù)膯幔?/p>
所以,檢查瀏覽器的種類是不科學(xué)的,也是不符合可持續(xù)發(fā)展觀的。特性檢查才是更加成熟的方案!
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: