錯誤得使用 Sprites 影響可訪問性
一些剛?cè)腴T的開發(fā)人員會為了節(jié)省 HTTP 請求數(shù)(這是使用 CSS Sprite 一直強調(diào)的好處)而把所有的圖片都當背景圖片來處理 – 甚至是那些傳達重要信息的圖片。結(jié)果會導(dǎo)致一個缺乏可訪問性的網(wǎng)站,也會降低 HTML 中 title 和 alt 的潛在益處。
因此,CSS sprite 本身沒錯,而且也不會引發(fā)可訪問性問題(事實上,正確得使用會提高可訪問性)。但是不分對錯得過度使用 sprite 會阻礙具有可訪問性和生產(chǎn)率方面的網(wǎng)頁建設(shè)進程。 HTTP 請求數(shù)又如何?
許多人會據(jù)理力爭,改善網(wǎng)站性能最重要的部分就是減少 HTTP 請求數(shù)。也要知道一項研究表明一個網(wǎng)站日常的訪問者中 40-60% 比例都是沒有瀏覽器緩存的。這是否足以說明應(yīng)該在所有情況下使用大型 sprites 呢?或許是這樣。尤其是考慮到用戶的首次來訪對一個網(wǎng)站的重要性。
Firefox 的 YSlow 插件顯示 HTTP 請求數(shù)
以往的瀏覽器一般只允許 2 個并發(fā) HTTP 連接,3.0 版本以來的 Firefox 和 IE8 默認允許 6 個并發(fā) HTTP 連接。這意味著每臺服務(wù)器有 6 個并發(fā)連接。引用 Steve Souders 的話:
“明白這是服務(wù)器的基礎(chǔ)是很重要的。使用多個域名,如 1.mydomain.com, 2.mydomain.com, 3.mydomain.com, 等等,使開發(fā)人員可以完全利用服務(wù)器連接數(shù)。在所有域名是同一 IP 地址的 CNAME 時依然有效。”
因此,或許在按鈕狀態(tài)之外使用 CSS sprites 也是有益的,在未來,隨著網(wǎng)絡(luò)連接速度的加快和新版瀏覽器的性能提升,使用大型 sprites 所帶來的好處將會變得不值一提。 那些 Sprites 生成器呢?
另一個喜愛大型 sprite 的理由是可以利用一些 sprite 生成器來簡單得生成 sprite。對此類工具的詳細討論和評測不在本文討論范圍。但是從作者對此類工具的研究來看,幫助非常有限,并且維護這些 sprites 一樣需要可觀的工作量,這也是需要和收益權(quán)衡的。
有些工具,例如來自 Fondue 項目的這個,提供輸出 CSS 選項。Steve Souders’ 的工具 SpriteMe 是另一個提供 CSS 編碼選項的。SpriteMe 會把現(xiàn)有的網(wǎng)站背景圖片轉(zhuǎn)換成單張 sprite 圖片(我之前提到的“大型” sprite)并提供下載以供編碼入頁面之中。然而這些工具只是有助于創(chuàng)建 sprite,并不能在維護方面提供多少幫助。Souder 的工具貌似對重新設(shè)計或布局的網(wǎng)站無效,而且只對那些現(xiàn)有的沒有使用 sprite 方法的網(wǎng)站有用。
可以改進現(xiàn)有的工具,而且未來也會有新的工具出現(xiàn)。但是,鑒于以上提到的這些缺點,是否還存在這種可能,就是開發(fā)人員依然把精力集中在有限的所得上?
出處:前端觀察
責(zé)任編輯:bluehearts
上一頁 CSS Sprites:有用技術(shù)or潛在麻煩 [2] 下一頁 CSS Sprites:有用技術(shù)or潛在麻煩 [4]
◎進入論壇網(wǎng)頁制作、WEB標準化版塊參加討論,我還想發(fā)表評論。
|