0 Comments

非响应式设计构建跨端Web App(3)

发布于:2013-10-26  |   作者:广州网站建设  |   已聚集:人围观

在客户端加载的说明

如果你正在服务器上检测用户代理,你可以在收到新请求时决定提供哪种CSSJavaScriptDOM节点。然而,如果你正在采用客户端检测,情况则更为复杂。你有如下几种选择:

1.    重定向到特定设备类型的URL,其​​中包含该设备类型的版本。

2.    动态加载设备特定类型的内容。

第一种方法很简单,需要采用window.location.href = '/tablet'这种重定向的方式。然而,URL地址会附加设备类型的信息,所以你可能想使用HTML5的历史API来清理网址。不幸的是,这种方法涉及一个重定向,所以可能会很慢,尤其是在移动设备上。
广州网站建设,网站建设,广州网页设计,广州网站设计

第二种方法实现更加复杂。你需要一种机制来动态加载CSSJS,还有(根据浏览器而定)你可能无法实现例如自定义<meta viewport> 这样的事。此外因为没有重定向,你需要在一张页面上来响应请求。当然,你可以用JavaScript来实现,但是这可能导致性能缓慢和/或糟糕的代码,这一切都取决于你的应用程序。

选择客户端或服务器方案

下面是在这些方法之间的权衡:

选择客户端 

基于屏幕尺寸或可扩展性的方案和用户代理比起来更为长远。

无需不断更新用户代理名单。

选择服务器 

能完全控制什么设备上加载什么版本。

更好的性能:无需客户端重定向或动态加载。

我个人的偏好是,最开始使用device.js和客户端检测。 随着应用的发展,如果发现客户端重定向有明显的性能问题,你可以很容易地删除device.js脚本,并在服务器上执行用户代理检测。

标签:
飞机