1

我已经检查了已经发布的关于检测网站移动设备的各种相关问题,但我的方法与我所看到的任何东西都有点不同,我想知道是否有人能看到它的任何问题。

我正在做的是...

  1. 我有一个执行 server.transfer(); 的 httpmodule 在用户访问的第一个请求上显示一个空白的 html 页面。

  2. 在这个空白的 html 页面上是一些检测视口宽度/高度和触摸功能的 javascript。然后,js 将此信息保存到客户端 cookie,然后(通过 window.location)重定向到最初请求的页面。

  3. 当 httpmodule 再次被点击时,它会从客户端 cookie 中读取视口和触摸屏详细信息。如果触摸可用或视口宽度小于 480 像素,则 httpmodule 将重定向(通过 Response.Redirect())到网站的移动版本。

这样做是否会遇到任何绊脚石?

我应该注意,该网站的平板电脑版本与手机版本相同,这就是为什么如果触摸可用,我想重定向到这个版本。

4

3 回答 3

3
any issues with it
  1. 肯定不是 SEO 友好的。
  2. 如果用户没有启用 javascript,它就不起作用
  3. 如果 cookie 未保存或被禁用,它会闪烁。
  4. 通过服务器传输,如果您发布任何帖子,并且任何 cookie 或 javascript 失败,那么也会丢失帖子数据。

这是一个不错的想法,但我认为您还需要在第一次服务器传输之前检查这个想法。使用您的方法,您可以避免使用所有浏览器信息来保持更新的数据库,我认为这听起来不错,但是如果它在现实世界中顺利运行,则需要对其进行测试,并且还需要在第一次 server-trasnfer 之前进行更多测试。

于 2012-06-06T13:37:42.180 回答
2

我可以看到两个问题:延迟和触摸事件可用性。

往返时间在移动网络上大大延长:您在 3G 上查看空页面请求大约需要 500 毫秒。因此,在用户看到任何东西之前,请求 - 重定向 - 重定向大约需要一秒钟的额外延迟。我不认为你会看到闪烁 - 正如一些评论者所建议的那样 - 你会在一秒钟内什么都看不到,这似乎不是一种积极的体验。

关于触摸:并非所有移动设备都是基于触摸的,有些(Windows Mobile 7)没有 ontouch* 事件。您需要单独跟踪这些。

视口也很棘手:如果您没有通过元标记强制视口宽度,您会发现视口测试会遗漏大量目标设备,因为它们声称是 1024 像素。

由于支持触摸的设备(iOS、Android 等)都支持 CSS 媒体查询,这不是更好的方法吗?

可能值得一看像 Luke Wroblewski 这样的人所倡导的 RESS(带有服务器端组件的响应式设计)方法:http ://www.lukew.com/ff/entry.asp?1392

于 2012-06-06T13:41:35.817 回答
0

尝试使用基于 CSS 的媒体查询,并相应地对网站进行排序。您可以动态检测屏幕尺寸并相应地更改 css。

http://webdesignerwall.com/tutorials/css3-media-queries

http://www.w3.org/TR/css3-mediaqueries/

于 2012-06-06T13:46:26.550 回答