微軟IE9 的開發方向非常清晰,支援HTML5,支援標準,在本週舉行的MIX10 上,IE 專案總管Dean Hachamovitch 如是說。在IE9 的開發上,微軟開始注重真實世界的需求,他們對全球前7000個網站進行即時監控,分析他們使用的每一種JavaScript 和DOM API 並為之提供全面支援。
在這7000 份用例的背後,有不少與HTML5 有關,對此,微軟並沒有透露更細細節,但考慮到HTML 影片和SVG 動畫的份量,顯然它們是未來HTML5 網站的核心。然而對HTML5 的專注並不意味著微軟會在諸如SunSpider 和Acid3 一類的測試上花大功夫,隨著IE9 的開發,他們的Acid3 得分雖然會繼續提高,但這不是IE9 看重的東西。 Acid3 是一種機械式測試,非系統化測試,你可以將瀏覽器的性能做得很好,但通不過測試,也可以各項指標做得平平卻在Acid3 上得滿分,Acid3 測試雖然有用,但不是面面俱到,尤其是上百種HTML5 功能並不在測試之列。
事實上,對標準的支援有很多層面,CSS 圓角似乎可以說明這個問題,IE9 預覽版和Webkit 都支援CSS3 圓角,Firefox 的Gecko 引擎也透過一個擴充功能支援圓角。圓角是Web 開發者們夢寐以求的功能,然而,圓角功能在不同的引擎上表現並不一致:
下圖是設計者希望看到的樣子
這是開發者不希望看到的樣子
上面那個不希望看到的樣子就是一些支援CSS3 圓角功能的瀏覽器的真實表現,這有兩種可能,要么瀏覽器錯了,要么標準不夠嚴謹,然而,這樣的問題,Acid3 是測試不出的,這種問題需要一種系統化的測試才能解決。
在設計這類測試的時候,可以發現一些標準中的問題,也可以發現瀏覽器實作中的錯誤,Acid3 無法測試出一個瀏覽器對HTML5 的支援程度,甚至無法告訴你哪種HTML5 功能瀏覽器不支持,這類問題需要更全面的測試才能解決。正因為這個原因,微軟延續了他們在IE8 所做的工作。在IE8,他們向W3C 提交了大量CSS2.1 測試,系統化測試是唯一可以保證滿足現實需求的方法。因此,在IE9 的開發中,微軟設計了一種新的測試方法, 他們已經將第一批測試提交給W3C ,微軟不想讓IE9 和其它瀏覽器拼出分數。
儘管瀏覽器之間在某種效能上各有千秋,但他們之間的距離都沒有IE8 那麼大,不管怎麼說,所有瀏覽器都應該努力讓相同的程式碼有相同的表現。
另外,SunSpider 的JavaScript 分數也不是IE9 的目標,SunSpider 測試能夠多方面反應瀏覽器JavaScript 引擎的效能,但就像真實的網頁並非按Acid3 測試的樣子來設計一樣,真實的Web 應用也不是按SunSpider 來寫的,真實的Web 程式要做很多優化,讓網頁迅速加載,同時讓那些複雜的操作在後台快速進行,SunSpider 測試不了這些東西。 SunSpider 不代表真實的世界,開發者應該面向真實世界,而不是測試平台進行開發。
微軟希望他們對HTML5 的支援穩定而強健,這意味著IE9 對HTML5 的支援不會面面俱到,HTML5 目前還有很多變數,另外,有些HTML5 功能雖然可靠,但並不在微軟7000 個用例之列,最終的IE9 可能會和別的瀏覽器走不一樣的路,IE9 在標準支援上如果再有差池,對微軟將是一個很大的糾結,不過,IE9 目前的方向是正確的。