3

我正在设计一个我想在网络和移动网络浏览器上运行的应用程序。显然,我需要不同的布局和视图,因为它们对 UI 有截然不同的大小限制。我显然还需要某种浏览器检测来确定请求是来自网络还是移动网络客户端。

我已经看到这个解决方案的实现有两种方式:

  • 根据检测到的客户端是 Web(发送到www.example.com)还是移动 Web(发送到m.example.com),以不同方式路由 HTTP 请求;或者
  • 根据检测到的客户端是 web ( app-styles-web.css) 还是移动 web ( app-styles-mobile.css)返回不同的 CSS 表

我的问题:每种策略的优缺点是什么,为什么?子域似乎有点不必要,因为无论如何您都必须拥有 2 个不同的 CSS 表,但也许它们正在成为“最佳实践”,因为它们将关注点分开?提前致谢!

4

1 回答 1

1

许多较大的供应商倾向于使用子域,因为它允许最终客户端浏览器确保他们重定向到站点的正确版本。考虑今天的网络巨头——Facebook、Twitter、雅虎,它们都有自己的紧凑型移动子域。

考虑一下我使用智能手机查看网站的情况 - www.example.com. 有一些代码可以检测到我的用户代理并将我重定向到它的移动网络等效子域m.example.com。明天,我在另一部手机上的定制浏览器上查看同一个网站。该浏览器隐藏了元数据,因此在代码中收到的用户代理不是智能手机的。它现在将加载同一网站的基于 Web 的版本,冒着 web-pages/CSS/JavaScript 渲染不正确的风险。幸运的是,我知道同一个网站有一个移动网络子域,所以我会点击地址栏指向正确的子域。

最后,有很强的 SEO 影响,子域被视为完全不同的网站,因此如果您只是加载不同的视图,您可能会处于不利地位。

几个月前,我也面临着类似的难题。但是我评估并考虑了我提到的上述所有要点,今天我最终获得了很多满意的客户:-) 如果您想安全起见,请使用子域方法。

于 2012-08-25T14:55:48.610 回答