「Error tolerance and quirk mode (zhTW)」修訂間的差異
出自 MozTW Wiki
(→容錯與 quirk 模式: 修了一些語句,改寫了一下(通順些)) |
小 |
||
(未顯示由 4 位使用者於中間所作的 4 次修訂) | |||
行 5: | 行 5: | ||
<p>除了安全性問題之外,Microsoft Internet Explorer 的正字標記之一就是它的容錯能力。其實整個 Microsoft Windows 開發平台都是這樣。容錯能力讓許多開發者覺得很幸福。不幸的是,對某些開發者來說,尤其是對平台設計者本身來說,這也是個<em>惡夢</em>。</p> | <p>除了安全性問題之外,Microsoft Internet Explorer 的正字標記之一就是它的容錯能力。其實整個 Microsoft Windows 開發平台都是這樣。容錯能力讓許多開發者覺得很幸福。不幸的是,對某些開發者來說,尤其是對平台設計者本身來說,這也是個<em>惡夢</em>。</p> | ||
− | <p>許多使用者都問過,為什麼 Mozilla(和 Firefox)不能像 Internet Explorer(IE)一樣,容忍更多的錯誤。他們認為如果 Mozilla 可以把編碼不良的網頁處理得更好一點,問題網站就會少一點,那 Mozilla | + | <p>許多使用者都問過,為什麼 Mozilla(和 Firefox)不能像 Internet Explorer(IE)一樣,容忍更多的錯誤。他們認為如果 Mozilla 可以把編碼不良的網頁處理得更好一點,問題網站就會少一點,那 Mozilla 被接受的程度也就會高一點。但是技術上而言,這既<strong>不可能</strong>也<strong>不可取</strong>。</p> |
− | <p> | + | <p>在網站開發的圈子裡,我們把不符合標準的瀏覽器佈局行為叫做怪癖(quirk)。這些行為可能是程式錯誤,或是本來就設計成這樣(為了回溯相容或容錯)。它們大部分都沒有可供查詢的說明文件,而且幾乎不可能辨認。有鑑於 IE 的市場優勢,許多開發者和使用者就把 IE 所有的怪癖(包括程式錯誤)當成它的功能。</p> |
− | <p>這些怪癖的本質,讓<em>模擬 IE</em> | + | <p>這些怪癖的本質,讓<em>模擬 IE</em> 變得完全<strong>不可能</strong>。因為處理編碼不良網頁的方式並沒有標準,而且若拿不到彼此的原始碼,開發者也無法寫出有同樣行為的軟體。我可以隨便舉個簡單的例子:</p> |
<pre> | <pre> | ||
<b> | <b> |
於 2006年4月28日 (五) 19:50 的最新修訂
容錯與 quirk 模式
原文:Error tolerance and quirk mode (en) (作者:danielwang 譯者:教父)
除了安全性問題之外,Microsoft Internet Explorer 的正字標記之一就是它的容錯能力。其實整個 Microsoft Windows 開發平台都是這樣。容錯能力讓許多開發者覺得很幸福。不幸的是,對某些開發者來說,尤其是對平台設計者本身來說,這也是個惡夢。
許多使用者都問過,為什麼 Mozilla(和 Firefox)不能像 Internet Explorer(IE)一樣,容忍更多的錯誤。他們認為如果 Mozilla 可以把編碼不良的網頁處理得更好一點,問題網站就會少一點,那 Mozilla 被接受的程度也就會高一點。但是技術上而言,這既不可能也不可取。
在網站開發的圈子裡,我們把不符合標準的瀏覽器佈局行為叫做怪癖(quirk)。這些行為可能是程式錯誤,或是本來就設計成這樣(為了回溯相容或容錯)。它們大部分都沒有可供查詢的說明文件,而且幾乎不可能辨認。有鑑於 IE 的市場優勢,許多開發者和使用者就把 IE 所有的怪癖(包括程式錯誤)當成它的功能。
這些怪癖的本質,讓模擬 IE 變得完全不可能。因為處理編碼不良網頁的方式並沒有標準,而且若拿不到彼此的原始碼,開發者也無法寫出有同樣行為的軟體。我可以隨便舉個簡單的例子:
<b> <p><li> <font color=red>段落 <div style="position:absolute;top:10px;right:10px;color:blue"> 哇啦 </p> </font> 哇啦 </b> 哇啦 </div>
上述範例在不同的瀏覽器會得到不同結果(即使是 IE 自己的不同版本也一樣)。此外,所有軟體都有程式錯誤,難以判斷一個排版怪癖到底是意外,還是瀏覽器試圖猜想並更正網頁的錯誤。瀏覽器開發者最多只能模仿怪癖,永遠無法精確。
容錯容得太過分也不可取。Windows XP SP2 之前的電腦會有那麼多安全漏洞的理由之一,就是因為那些平台讓開發者很容易做事 - 包括不該做的事。換句話說,Windows 是容錯的作業系統。Service pack 2 引起議論紛紛可不只是因為它修復了一些東西,還因為它弄壞了一些東西(既存的軟體)。
容錯(或是回溯相容)在短期上或許可以拉攏新開發者,但是在長期來說則會付出代價。Internet Explorer 承受相同的宿命:為了「壞編碼」所設計的程式碼已經讓這瀏覽器超載,所以它的開發受阻。事實上 [BetaNews Interview|Windows Product Management 的執行長接受 BetaNews 訪談]的時候就提到,回溯相容是讓 IE 進一步開發困難重重的理由之一。
結論是,網站開發者不應該期望 Mozilla 或任何瀏覽器把編碼不良的網頁處理成「它們應該有的樣子」(這沒辦法定義),這麼做只會把網站開發者鎖在古早的技術裡。