瀏覽器支持 JavaScript開發所麵臨的不幸事實是,因為與實現和支持它的瀏覽器關聯過於緊密,它受到當前最流行瀏覽器的支配。由於用戶未必會使用對JavaScript支持得最好的瀏覽器,我們被迫對哪些是最重要的功能作出抉擇。
許多開發者已經開始做的是去掉對那些導致過多開發障礙的瀏覽器的支持。因為它們用戶群的規模和還是因為它們擁有你喜歡的功能而考慮對瀏覽器的支持,需要仔細的權衡。
最近Yahoo發布了一個可用來擴展你的web應用程序的JavaScript庫。連同那個庫,它還發布了一些供web開發者遵從的指導方針。以我之見,從中產生的最重要的文檔是Yahoo支持與不支持的各種瀏覽器的官方的列表。盡管任何人或任何公司都可以做類似的事情,一份由互聯上訪問最頻繁的網站所提供的文檔,其價值絕對無法估量。
Yahoo開發了一個分級的瀏覽器支持策略,對瀏覽器指定特定的級別並依據其功能為它提供不同的內容。Yahoo給瀏覽器三個級別:A,X和C:
A級瀏覽器是得到完全支持和測試的,Yahoo的所有程序都能有保障在其中運行。
X級瀏覽器是Yahoo認可但是沒能徹底測試的準A級瀏覽器,或者是嶄新的從未遇到過的瀏覽器。X級瀏覽器被期望能處理高級的內容,與A級瀏覽器等同對待。
C級瀏覽器是已知的“劣質的”瀏覽器,不支持運行Yahoo應用程序所必須的功能。由於Yahoo應用程序完全Unobtrusive(即使沒有JavaScript它們也能繼續工作),這些瀏覽器隻需處理不含JavaScript的功能性的內容。
順便一提,Yahoo的瀏覽器級別選擇竟與我的不謀而合,這使得它尤其富有吸引力。在這本書裏,我大量地使用了術語“現代瀏覽器”,當我用這一措詞的時候,我指的Yahoo瀏覽器分級表評定為A級的任瀏覽器。給定一組賴以工作的一致的功能,減少因避免瀏覽器的不兼容而帶來的痛苦,學習和開發的經曆將會變得更加有趣。
我極力推薦你們去通讀瀏覽器分級的支持文檔(見
https://developer.yahoo.com/yui/articles/gbs/gbs.html,該文檔包含了圖1-6所示的瀏覽器支持表),感受一下Yahoo力圖實現的是什麼。通過將些信息公之於web開發的大眾,Yahoo正在給出一條無價的“黃金標準”讓其它所有人去靠攏,這是很了不起的。
[attach]32139[/attach]
圖1-6. Yahoo提供的瀏覽器分組支持表
更多的關於瀏覽器支持情況的信息請參看本書的附錄C,那裏對每種瀏覽器的缺點和長處都有深入的論討。或多或少地,你會發現所有的A級瀏覽器都走在發展的最前列,提供了遠遠超出你的開發所需要的功能。
當選擇你希望支持哪些瀏覽器時,最終結果實際上可以歸結為你的應用程序支持的一組功能。如果你想要支持NS4或IE5(舉個例子來說),則勢必嚴格地限製你可以在程序中使用的功能的數量,因為它們缺乏對現代編程技術的支持。
盡管如此,了解哪些瀏覽器是現代的允許你利用其中可用的強大的功能並給你一個可供將來的開發所依據的穩固的基礎。這一穩固的開發基礎可由以下幾種功能所定義:
核心Javascript 1.5: 最近、最廣泛接受的JavaScript版本。它全麵支持麵向對象的JavaScript。IE5.0不支持全部的1.5,這是開發者們不願意支持它的主要原因。
XML文檔對象模型(DOM)2:用來訪問HTML和XML文檔的的標準方案。這絕對是編寫高效率的程序不可或缺的。
XMLHttpRequest: Ajax技術的支柱——用來發起HTTP請求的一個簡單層。所有的瀏覽器默認都支持這一對象,除了IE5.0-6.0;而它們也都支持用ActiveX初始化功能相當的對象。
CSS: 網頁設計的基本需求。這似乎像是一個額外的需求,但是擁有CSS對web應用程序開發者來說是必不可少的。由於每一種現代瀏覽器都支持CSS,大多數問題的發生通常歸結為呈現方麵的差異。這正是IE for Mac較少被頻繁支持的主要原因。
以上這些瀏覽器功能的結合構成了開發JavaScript web應用程序的支柱。所有的現代瀏覽器都以某種方式支持以上列舉的功能。本書論述的所有內容都基於這一假設:你所使用的瀏覽器最起碼能支持它們。