2009年3月18日 星期三

[狀況報告] 可惡的HTML(暈)!

最近處理公司網頁的部份,
總是不時會發現頁面莫名其妙的被載入兩次,
當然啦,站在我們使用者的角度而言,是不會注意到這回事的!

但是呢,在程式的部份,你卻可以發現這回事,
而這回事往往會讓你想要做的事被破功(比如說統計頁面瀏覽數啦......)。
像我最近碰到的兩個例子就是這種會導致頁面被重複載入的狀況:
  • 狀況一:一個看起來不怎樣的TABLE中,只因為這個TABLE有個屬性background的值是#FFFFFF(色碼),結果頁面被重載入。
  • 狀況二:一個src為空值的img(如:<img src="" />)。
在狀況一中,table裡的background標籤是限定只能塞背景圖片的!若你在background裡塞色碼,瀏覽器會以為這個table要用『網頁檔名#色碼』的圖片作背景,結果當然就是頁面被重新載入。

在狀況二中,我推測(因為我沒認真去找原因)應該是瀏覽器以為該img要把當前頁面當作圖片來源(即:<img src="網頁檔名" />),所以頁面自然又會被載入一次!

要避免這兩種狀況的最好方法,就是要熟記HTML的元素及屬性用法!
(很可惜的是,大家在設計頁面時太過依靠那些IDE了!對於HTML的原始碼往往都不熟......我也是翻了HTML辭典,才知道狀況一的問題Orz)