WURFL与PHP响应式设计的开销

时间:2012-01-28 16:32:49

标签: php mobile responsive-design wurfl

我正在开发一个内部项目管理基于Web的应用程序,需要支持移动设备和桌面。

它是用Symfony2,jQuery,HTML5构建的。

在服务器端和客户端,使用WURFL与响应式设计之间是否存在性能比较?具体来说,我正在考虑渲染时间,HTTP调用(它的AJAX非常重)。

3 个答案:

答案 0 :(得分:4)

性能方面,响应式设计将整个负载放在客户端上,因此您应该通过在许多设备上进行测试来确保其工作正常。并非所有智能手机都是平等的 - 有些CPU速度慢,使得JavaScript代码和媒体查询变得非常缓慢。总的来说,使用服务器端代码可以为客户带来更轻松的体验,同时还可以让您对体验进行更精细的控制。

但在考虑性能方面之前,您应该考虑这种方法是否能提供足够的移动体验。您应该追求的网站移动版本有两个重要方面:

  • 上下文相关的体验 - 应该能够提供 使用移动设备的人的适当经验。这可能是 与相同服务的适当体验完全不同 桌面。请注意,使用移动设备并不一定意味着 移动设备 - 移动设备用户通常是物理上不动的但是用户 尽管如此,您可能更愿意与您的网站或服务进行互动 使用移动设备时的不同方式。一个人的重要性 在语境上适当的经验正在急剧增加 我们与网络互动的方式正在增加:a 在笔记本电脑上看起来合适的前瞻性体验可能会有所体现 在与您互动的电视浏览器上完全不正确 来自一个房间。
  • 设备敏感体验 - 应该是 能够提供在设备上运行良好的体验 您的网站客户使用。这一系列的可寻址设备是 从功能上一直增加,并且越来越多样化 电话到电视。有些人靠近脸,有些人则是 与整个房间互动。它几乎是不可能的 在如此广泛的设备上提供令人满意的体验, 每个都有自己的输入/输出限制和约定, 没有为设备定制经验。主要的互联网 品牌敏锐地意识到这一点并且做得比其更多 显而易见 - 即使看似简单的谷歌主页面具也很大 幕后不同的代码服务于不同的设备 在整个设备环境中实现有用的体验。

用作提供桌面和移动网站的工具,但是,响应式设计无法提供理想移动网站的所需方面。

  • 因为它无法提供符合上下文的体验 无论人们使用何种设备,都能提供相同的体验 使用(对于受限制的网站,此限制可能不是问题 用例)
  • 它只能为设备提供设备敏感体验 有限的设备范围,因为核心技术限制了范围 可以针对智能手机和其他高端产品的设备 设备。一个经验适合所有问题和有限的范围 对于所有网站 - 某些网站,可寻址设备可能不是问题 不要适应特定于移动设备的体验 一些网站所有者可能不希望服务范围广泛 设备。

值得注意的是,响应式设计对移动搜索引擎优化具有未知影响,因为不清楚搜索引擎是否会将内容识别为适合移动设备并在移动搜索中对其进行相应排名。

答案 1 :(得分:3)

任何可以在服务器端确定和执行的逻辑都可以减少数据传输和客户端开销。减少发送内容的大小 - 例如相关的CSS,JavaScript,HTML和优化的图像 - 显然会减轻客户的负担。

基于RESS的解决方案(即响应式设计+服务器端组件 - http://www.lukew.com/ff/entry.asp?1392)将始终有机会比自己的响应式设计解决方案更快。您将始终需要考虑“更快”的重要性,但当我看到(可能设计不佳)响应式设计网站向移动设备提供1Mb +内容时,他们可以通过一点服务器端智能获得性能优化是巨大的。关于为什么网站性能对gomez @ http://www.gomez.com/resources/whitepapers/why-web-performance-matters/很重要以及为什么每一秒都很重要的优秀白皮书。

http://www.opendeviceknowledge.com/discovery列出了有关服务器端功能检测如何提供帮助的一些示例,包括响应式设计和服务器端世界如何协同工作。

答案 2 :(得分:2)

WURFL发明家,在这里。 Ronan Cremin似乎已经相当广泛地解决了这个问题。在一天结束时,是一个可用性与成本(开发和维护)的问题。

我想指出的唯一另一件事是WURFL和响应式网页设计不一定是独立的世界。 Thisthis帖子都有我对该主题的看法。

更有趣的是,我们最近推出了一项服务,使一些WURFL也可供Javascript开发人员免费使用。我建议你查看http://wurfl.io/网站。

简而言之,如果您导入一个微小的JS文件:

<script type='text/javascript' src="//wurfl.io/wurfl.js"></script>

您将留下一个类似于:

的JSON对象
{
 "complete_device_name":"Google Nexus 7",
 "is_mobile":true,
 "form_factor":"Tablet"
}

(假设您正在使用Nexus 7),您将能够执行以下操作:

if(WURFL.form_factor == "Tablet"){
    //dostuff();
}

这就是你要找的东西。

由于