我正在检测移动设备的方式是否存在任何问题

时间:2012-06-06 13:28:04

标签: javascript asp.net mobile cross-browser

我已经检查了有关检测网站移动设备的各种相关问题,但我的方法与我见过的任何内容都有所不同,并且想知道是否有人可以看到任何问题。

我正在做的是......

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

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

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

  4. 这样做有可能遇到任何绊脚石吗?

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

3 个答案:

答案 0 :(得分:3)

any issues with it
  1. 肯定不是SEO友好。
  2. 如果用户没有启用javascript,则无法正常工作
  3. 如果没有保存或禁用cookie,它会闪烁。
  4. 如果您发布任何帖子,服务器转移,并且任何cookie或javascript失败,那么也会丢失帖子数据。
  5. 它的好主意一般,但我认为你还需要在第一次服务器转移之前检查这个想法。使用您的方法,您可以避免使用所有浏览器信息保留更新的数据库,我认为这听起来不错,但如果它在现实世界中顺利运行,则需要进行测试,并且还需要在第一个服务器传输之前进行更多测试。

答案 1 :(得分:2)

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

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

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

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

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

值得一提的是看看Luke Wroblewski等人提倡的RESS(服务器端组件的重新设计)方法:http://www.lukew.com/ff/entry.asp?1392

答案 2 :(得分:0)

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

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

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