Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mobile 服务器端选项,用于向不同的移动设备提供不同的页面结构(HTML)_Mobile_Xhtml Mp - Fatal编程技术网

Mobile 服务器端选项,用于向不同的移动设备提供不同的页面结构(HTML)

Mobile 服务器端选项,用于向不同的移动设备提供不同的页面结构(HTML),mobile,xhtml-mp,Mobile,Xhtml Mp,我正在研究开发“经典”风格的移动站点的最佳实践,即作为移动HTML页面交付和体验的移动站点,与小型JavaScript应用程序(jQuery mobile、Sencha等)相比 主要有两种方法: 将相同的页面结构(HTML)交付给所有移动设备,然后使用CSS媒体查询或JavaScript来改善功能更强的设备的体验 为具有增强功能的设备提供完全不同的页面结构(可能还有内容) 我对第二种方法的最佳实践特别感兴趣。两个很好的例子是: 麻省理工学院的移动网站:黑莓手机与iOS和安卓手机不同,功能(更少)

我正在研究开发“经典”风格的移动站点的最佳实践,即作为移动HTML页面交付和体验的移动站点,与小型JavaScript应用程序(jQuery mobile、Sencha等)相比

主要有两种方法:

  • 将相同的页面结构(HTML)交付给所有移动设备,然后使用CSS媒体查询或JavaScript来改善功能更强的设备的体验
  • 为具有增强功能的设备提供完全不同的页面结构(可能还有内容)
  • 我对第二种方法的最佳实践特别感兴趣。两个很好的例子是:

  • 麻省理工学院的移动网站:黑莓手机与iOS和安卓手机不同,功能(更少),但URL相同--
  • CNN移动网站:同上--
  • 我想听听SO的同事们的意见,他们实际上已经做过类似的工作,并且可以解释提供这种依赖于设备的结构/内容/体验的最佳实践是什么

    我不需要关于移动用户代理检测或WURFL的入门知识,也不需要其他(很棒的)SO线程中包含的任何概念。我使用过jQuery Mobile和Sencha Touch,我对提供最终移动体验的大多数方法都很熟悉,因此也不需要任何提示,谢谢

    我真正想了解的是:这些特定类型的体验是如何基于用户代理组进行服务器端检测和交付的——其中一个精简的页面结构(不同的HTML)交付给一组设备,另一个更丰富的HTML文档交付给更新的设备,但两者都位于相同的子域/URL


    希望一切都有意义。非常感谢。

    检测移动设备需要哪种格式的常用方法是accept标头:

    应用程序/xhtml+xml>xhtml text/vnd.wap.wml>旧的wml wap页面 . .

    在可以处理所有桌面html格式的较新设备上,可以使用用户代理

    然后你必须问问自己你想做什么:

    切换到其他样式表(仅适用于较新的设备)。 切换到另一个视图逻辑,如构建wml页面模板。 切换到完整的其他页面


    我认为第二种方法是最好的。许多web框架可以轻松地切换到另一个视图逻辑,而无需重写其余的视图逻辑(mvc模式的荣耀)。

    在NPR,我们使用服务器端的“应用程序”来提供正确的html/css/等,这取决于用户是在高端设备上还是在低端手机上

    因此,当移动设备ping npr.org页面时,我们的服务器使用用户代理检测方法将其指向相应的m.npr.org。一旦指向m.npr.org的URL,这个web应用程序——它是用中文编写的,但我认为可能有很多东西——会发回该网站的触摸版或更简单、精简的内容。web应用程序的选择至少在一定程度上基于WURFL数据

    我没有足够的代表点来发布与截图的比较,所以我必须给你指出网站本身

    您可以在桌面浏览器中通过键入m.npr.org查看精简的站点来查看此内容。您可以通过添加参数?devicegate.client=iPhone_3_0来覆盖默认的设备检测,以查看您在智能手机上访问npr.org时看到的触摸版本。如果查看源代码,可以看到在同一子域中提供的html和css是如何不同


    希望它能帮助我们在野外看到这样的东西。这有意义吗?

    我给你举两个例子

  • 阅读facebook是如何实现这一点的,使用它为不同的标记提供不同的输出:

    在它们的实际实现中会有很多好的东西,我希望它们是可用的

  • 我使用了一个名为的框架,让您编写一次应用程序(在PHP对象或XML文件中),并根据一些检查(接受头、代理字符串等)将正确的标记输出到设备


  • 我没有想过在应用程序中使用不同的视图。好主意。关于WAP1和新mhtml之间切换的有趣文章如下:。它涉及drupal,但有许多有趣的代码示例。对于在新设备(iOS、Android等)之间切换,我认为像jQuery mobile这样的框架非常有用,因为不需要为每种设备提供全新的语法。您提到的Sencha也是一个解决方案,但我认为它对于移动解决方案来说是“大”的(我不喜欢这家公司采用社区驱动的项目并进行销售)。这完全有帮助。那么,这些是基于UA的不同“应用程序”吗?与Johni描述的“不同的应用程序视图”方法相比,有什么优点/缺点吗?大卫,非常有用。非常感谢。我要出去度假几天,但我会在回来时查看这些链接。:)