2015-10-13 70 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