近來大家總是在標準上爭論不休,其實,這些問題一些相關文章已經說得很明白了。
以下我就談談我的看法。本帖子有太多的“我認為”,說明了我只是想把我的想法拿出來跟大家商榷,或許有太多不對的地方,也請大家一一指出。
1、我對web標準的理解
所謂的web標準,在一些教程文章上已經得到結論:結構化標準(XHTML、XML)、表現(xiàn)標準(CSS、XSLT?)、行為標準(DOM、ECMAScript)。這些東西在網(wǎng)上一搜一大把,在這里我就不多說了。我只說我自己的想法:
a.標準是相對的,有其一定的局限性
作為標準本身,它也在不斷地完善中。我們也可以加入其中完善它,而不是盲從它。沒有最好,只有更好。(LeXRus前一陣子說要成立自己的web標準組織,不知道現(xiàn)在怎么樣了。)
b.標準只是被推薦使用,好的標準大家都會自覺去遵守
我們之所以使用標準,就是因為標準對我們有利。正如現(xiàn)在倡導的ISO9000標準一樣,它只是倡導,并不強迫。我認為它對我有用,所以我用它;同樣,如果你認為它實在不怎么樣,你也可以不用它,標準本身不應該帶有任何強迫性。就跟打籃球一樣,NBA是24秒進攻,我們是30秒進攻,我們要想加入NBA,就得用人家的規(guī)則。還有我們加入“世貿”也是,如果我們夠拽,自己成立一個“世貿”,自己發(fā)布一套標準,也是可以的。
c.標準沒有明確提到用div還是table
有些朋友很容易把標準簡單地等同于“把table換成div”。我不這么認為,因為table也是符合xml規(guī)則的。含有table的頁面照樣可以通過XHTML1.0的驗證。
d.“div布局”不只是用div進行布局
我們可以用一切可能的標簽(包括table)對頁面進行布局,目的就是要達到最優(yōu)。它只是提出一個概念,一個全新的模式。壇子里也有人說過,“重要的是觀念上的更新,而不是代碼。”當然,我們的最終目的是代碼的更新。
e.XHTML驗證是手段,不是目的
有時,我們用javascript來生成flash movie代碼,以欺騙validator,通過驗證。用這種方法,那么沒有通不過驗證的頁面。如果只是玩玩,那是可以的。但是我怕會有些初學者太把validator當回事,甚至認為通過驗證是最終目的。我的看法是:validator不過是一個工具,它幫助我們檢查我們的頁面是否符合標準,僅此而已。最終我們還是得按客戶的要求設計我們的頁面。
2、我為什么要用標準
有人會以為使用標準的目的就是為了達到標準。其實,《網(wǎng)站重構》一語道破天機:為了網(wǎng)站能“活”得更長久,為了提高網(wǎng)站的可訪性,更為了降低成本,我們必須采用Web標準!這里有三個“為了”,沒有一個是為了標準。標準只是手段。
接觸“標準”后,我嘗試去做一些符合“標準”的頁面。當時,并不是很明確為什么要使用標準,只是出于一種好奇心理。中間也遇到了一些難題,有技術上的,也有觀念上的。但是,現(xiàn)在我很樂意用div+css來給客戶做網(wǎng)頁。
用了標準以后,給我的感覺就是:代碼精簡了,維護方便了。
代碼精簡,可縮短頁面裝載時間。就算在當前寬帶的條件下,我們也不應該放寬對自己的要求——精簡代碼(我想這也是每一個程序員對自己的要求),況且現(xiàn)在還有不少的撥號用戶,以及手機上網(wǎng)/瀏覽的用戶。這是一個分秒必爭的社會。
嚴格按照標準,可以獲得更高的兼容性。一個合格的網(wǎng)頁制作者,他總是試圖讓網(wǎng)頁達到最高的兼容性。當然,他要在效果與兼容性之間取得某種平衡。就像我們現(xiàn)在挑老公:既要有錢,也要靚仔。
維護方便,我甚至只要修改一下css就可以讓整個頁面呈現(xiàn)出完全不同的風格。這可以節(jié)省不少工作。
當然,我認為用標準最重要的一點是:向后兼容。用一個專業(yè)的術語就是:可持續(xù)發(fā)展。網(wǎng)絡總是在不斷地發(fā)展中,一個好的網(wǎng)頁制作者,總得對未來的發(fā)展有一定的預見。就現(xiàn)在我知道的,以后一段時間確實是xml的天下,直到有更好的東西出來取代它。
每年都有太多的網(wǎng)站為了跟上時代,花不少錢在改版上。因為改版就意味著一切重來,包括代碼,甚至程序。
標準還要求我們把數(shù)據(jù)交給XHTML(或者html、xml),把表現(xiàn)交給css,兩者各司其職,結合起來。
3、為table平反
《網(wǎng)站重構》一書出來以后,也許有很大的誤讀成分,一些朋友把標準跟重構混淆了,甚至等同起來。我沒看過這本書,不好做評價。
“在不改變代碼外在行為的前提下,對代碼做出修改,以改進程序的內部結構”,這就是重構。我認為“網(wǎng)站重構”兼有“div布局”跟“web標準”的意思。布局講的是一種方法,標準講的是一種規(guī)范,這是兩碼事。
web標準并不是說不用table,我找遍了網(wǎng)上的文章,沒有找到一篇文章說web標準反對使用甚至建議不使用table標簽,我想它是這樣說的:建議不要使用table“布局”,而改用div+cs“布局”。
拿一個數(shù)據(jù)表來說,我認為用table來組織它是最好的解決方案。當然,你要用其他辦法來實現(xiàn)也是可以的,但是我敢說都沒有table來得簡單、簡潔。(也許有,只是我沒找到?)當然,在學習階段,強制自己不使用表格解決一切問題,還是蠻有用的。
以上說了這么多,與其說是我的想法,不如說是匯總了大家的想法。但求不貽笑大方,如果能對初學者有所裨益,那就阿彌陀佛了。
出處:藍色理想
您可能感興趣的文章:- 重構Javascript代碼示例(重構前后對比)
- JS前端框架關于重構的失敗經驗分享