在公司做需求的時候,應為客戶或市場的需求不得不兼容低版本瀏覽器,例如IE8,大家在平常工作中是怎麼處理兼容問題的呢?
說下我目前的解決方案吧,同時也希望大家能提出自己的解決方案。
#Firefox
和Chrome
本身問題倒不大,而且調試起來比較方便,問題一般不大,主要是IE
。
Windows系統
使用低版本IE,win10
可能不支持,另外自帶的調試工具,用起來真的反人類,畢竟是好幾年前的產物了。有時候調請求,不如用fiddler
。
瀏覽器使用IE11(使用內建開發者工具的模擬選項可以模擬IE7-11各瀏覽器,整體來說還可以,因為本身的開發者工具比較新,調試起來還比較方便,但是會有部分css和js問題在模擬模式和實際的效果不一致)
#使用IETest,說實在我覺得這工具真心不好用,調試工具和1一樣比較老,看一看樣式問題還行,調試js錯誤什麼的比較累。
類別Linux系統
#這個IE的話,可能還要跑個虛擬機,然後到了虛擬機有碰到了跟上面Window系統
一樣的問題。
共有雲端測試
#這個有bowserstack
(支援本地調試,需要安裝chrome插件)等等,這個收費有點貴,大概29$/month,似乎還是一個人的。支援大部分瀏覽器,但是速度也比較慢,不過也算是一種還行的方案。
私有雲端測試
#這個之前似乎去一個講座的時候,有人說過,在是私有雲的話,第一速度快,第二好客製化點。
目前個人比較希望用的應該是私有雲測試
,但目前不知道有沒有比較好的開源方案。
歡迎大家提出意見,一起探討,謝謝大家~
#PHP中文网2017-05-19 10:15:53
個人覺得上面的思路不對,是應該在明確了相容性需求後,進行開發的時候就要考慮到這些相容性問題。而不是正常的都做好了,才來測試、發現、調試解決這些問題。
如果確定需要相容IE8,那麼在開發的時候就應該要處理好一些常見的問題。如:
IE8的window物件下沒有JOSN,需要使用JSON函式庫。
IE8下較多情況不會重繪,需要單獨處理。
IE8下事件綁定的相容寫法。
IE89不開控制台時沒有console對象,所以最終的程式碼中不能存在console偵錯程式碼。
IE8基本上不支援css3,IE9僅僅部分支援 有些樣式的降級處理方案。
。 。 。
開發前就明確相容性需求,開發時就處理好對應的相容性問題。最終產品完成後,只用正常的在對應瀏覽器上彈奏一次功能性測試即可。相容性上基本不會有問題。
我在的公司產品全面要相容IE8,部分還要到IE7,一直使用的是這種形式。對於一些無法實現的效果,直接溝通告訴客戶,低版瀏覽器下只保障實現功能,樣式相容處理,不能達到和高版本瀏覽器相同的效果。
無論什麼測試工具,發現問題後最終還是要解決的,最好的處理方式不應該是從源頭就處理嗎?如你所說,那低版的IE,調試要不是不能,就是反人類。
工具的話推薦一個:阿里的 F2ETEST,部署比較麻煩,但是功能不錯,也挺好用。
最後,其實公司有一定累積的話,你會發現,要相容的其實不只是IE,chrome和Firefox也都存在一些問題的,只是相對少了很多而已。