簡體   English   中英

使用 Internet Explorer 兼容模式的缺點

[英]Cons of using Internet Explorer's Compatibility Mode

在 IE 中查看到兼容模式的 web 站點有什么缺點? 假設我們強制 IE9 到IE8 兼容模式

  • 性能缺陷
  • 無法使用任何新的 IE9 特定功能,例如 HTML5/CSS3/SVG

為什么?

我們運行自 2000 年以來開發的舊版 web 應用程序,因此要與 Chrome、Opera、Firefox、IE6/7/8 兼容是一場混戰,現在我們決定將 IE9 添加到列表中。 但是對於 IE9,我們遇到了打印問題,“Permission deniend”JavaScript 錯誤(可能與跨框架 JavaScript 調用有關)和下一個問題 - 簡單的解決方法是強制 IE9 像 IE8 一樣運行,然后一切正常。 但我仍然不確定它是否可以到達 go ......

首先我們的應用程序是公共網站(對於我們的客戶)

您有一個 2000 年開發的公共網站,但它不能在現代瀏覽器上運行? 棄用它或重新編寫它。

不要破解您的代碼以支持現代瀏覽器,該網站顯然寫得不好並且不適用於標准。 你不能逃避這個。

唯一可以擺脫這種不兼容性的地方是 Intranet 應用程序,即使這樣,您也應該簡單地 state “它適用於瀏覽器 X,可以使用它”

你不能對面向公眾的客戶這么說。 我的意思是你可以嘗試,但如果把生意輸給你的競爭對手,你會很開心。

重新開發您的網站以符合 W3C HTML/CSS 標准和 ES5 標准,它將完全面向未來(幾年)。

唉,web 的工作方式是不推薦使用超過 5 年的東西。 所以要么每 5 年重新編寫一次,要么退出 web 業務。

就實際使用兼容模式而言,不要。 IE6-8 是可怕的引擎,應該像瘟疫一樣避免使用。 如果您使用它們,那么您將無法編寫面向未來的符合標准的代碼。

您的代碼需要符合標准,並且您應該修復/填充/修補那些瀏覽器未實現標准的任何特定於瀏覽器的錯誤。

你不能說你已經在 IE6/7/8/9 中進行了測試,除非你在這些不同的版本中進行了測試。 模擬測試環境與使用測試環境不同。 據我所知,IE7/8 兼容模式是較舊的渲染引擎,而不是作為一個整體的底層瀏覽器、錯誤等等。 它是封閉源代碼,所以你永遠不會知道。

將微軟免費下載的用於跨瀏覽器測試的虛擬磁盤映像轉換為 Virtualbox 映像,並將它們放在只運行 Virtualbox 的機器上。 一台舊機器就可以,無頭運行虛擬機並使用遠程桌面訪問它們。 通過這種方式,您將能夠在所有瀏覽器中進行測試,而不會給您的機器帶來 MS/Spyware 的負擔。

我相信您的系統管理員可以使用組策略編輯器將 IE 設置為所有 Intranet 流量的兼容模式。 從現在開始,您創建的任何網站都可以添加元標記以強制 IE9 原生呈現並使用所有較新的功能...

我必須在我當前的項目中使用 header 中的以下文檔類型和元標記來執行此操作:

<!DOCTYPE HTML >

<meta http-equiv="X-UA-Compatible" content="IE=100" />

兼容模式是微軟引入的,目的是讓人們有機會升級他們的應用程序,而不是長期使用。 AFAIU。

如果您希望您的應用程序與 IE9 兼容,那么您將不得不對其進行更改。 如果您試圖保持 IE6-9 兼容性,那么您將面臨真正的挑戰,您應該考慮這是否真的實用 - 從本質上講,您需要至少 2 組不同的 html。 這對你實用嗎?

IE9 兼容模式與 IE9 和 IE8 不同 - 它從兩者中獲取位。 因此,您需要針對兼容模式版本進行全面測試,並確保它仍然可以針對此工作。

所以在回答這個問題時,缺點是你不兼容 IE9,並且當 IE10 出現時,你的代碼可能不會在任何模式下運行。 您正在努力進行兼容性測試,而不提供未來的更改。 從長遠來看,您會做得更好,以使您的代碼與 IE9 兼容。 此外,您向客戶傳達的信息是,您的代碼庫將不再兼容。 除非你和他們談論返工,否則這是一個真正的負面因素。

然而,聽起來你的整個代碼需要重新工作,忘記 IE6 並為現代工作瀏覽器編寫。 在發生這種情況之前使用兼容模式可能沒問題。 如果你這樣做——並告訴你的客戶——那么保持兼容模式是可行的。

使用兼容模式不會導致瀏覽器使用舊版 IE 中存在的 JavaScript 引擎。

我的意思是它將使用 IE9 引擎運行任何 JavaScript 代碼。 這對我們來說是在調試 IE7/8 有問題的舊產品時遇到的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM