2015-10-13 71 views
0

我的應用程序的前端設計用於非常舊的瀏覽器。我想升級到Bootstrap 3和JQuery 2,但我不想停止支持舊的瀏覽器。如何根據用戶的瀏覽器爲舊版本或新版本提供服務?我應該這樣做嗎?我基本上需要每個腳本,模板和視圖的2個版本嗎?根據用戶的瀏覽器版本提供不同版本的文件

+2

最好的做法是:不要。要麼支持支持舊版本的庫,要麼刪除舊版本的支持。不要試圖檢測用戶的瀏覽器,這種方式是瘋狂的。 – davidism

+0

這聽起來像一個維修噩夢。您最終會維護兩個(或更多)版本的應用。 – joews

+0

一個評論;一般來說,強烈避免瀏覽器檢測。但是,特徵檢測很好, [Modernizr.js](https://modernizr.com/)可能會有所幫助。 – JonathanHayward

回答

0

看看requirejs。使用requirejs,你應該能夠編寫一些邏輯服務於不同版本的文件,具體取決於瀏覽器

0

我建議你推遲對傳統瀏覽器的支持,並針對前向引擎開發。原因是,你可能花費3周時間來爲幾個月後將被棄用的IE版本添加支持。還有額外的努力!

您應該能夠針對相同的依賴關係運行構建工具,使用不同的版本。

如果您使用npm,那麼你可以簡單地分配兩個不同的package.json文件,edge.jsonlegacy.json,然後符號鏈接,安裝依賴,並分別建立相應的靜態資產。

骯髒的例子:

git clone --reference app edge 
git clone --reference app legacy 

ln -s edge/edge.json edge/package.json 
ln -s legacy/legacy.json legacy/package.json 

現在,在瓶,你必須找出用戶代理,解決無論是邊緣還是舊版瀏覽器,然後返回一個HTML文件,該文件將引用資產從適當的根。您應該在您的響應標題中設置Vary: User-Agent