3

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

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

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

4

3 回答 3

4

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

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

  • 适合上下文的体验——它应该能够为使用移动设备的人提供适当的体验。这可能与桌面上相同服务的适当体验完全不同。请注意,使用移动设备并不一定意味着移动性——移动设备用户通常无法移动,但用户在使用移动设备时可能更愿意以不同的方式与您的网站或服务进行交互。随着我们与 Web 交互方式的增加,适合上下文的体验的重要性也在显着增加:在笔记本电脑上看起来很合适的前倾体验在您从跨平台交互的电视浏览器上可能会感觉完全不正确。房间。
  • 设备敏感的体验- 它应该能够提供在您的网站客户使用的设备上运行良好的体验。从功能手机到电视,这种可寻址设备的范围一直在增加,并且变得更加多样化。有些靠近脸部,有些则在房间的另一边进行互动。如果不为设备量身定制体验,几乎不可能在如此广泛的设备上提供令人满意的体验,每个设备都有自己的输入/输出限制和约定。主要的互联网品牌敏锐地意识到了这一点,并且做得比表面上看起来的要多得多——即使是看似简单的谷歌主页也掩盖了在幕后服务于不同设备的截然不同的代码,这些设备用于在整个设备环境中实现有用的体验。

然而,响应式设计用作提供桌面和移动网站的一种方式,无法提供理想的移动网站所需的两个方面。

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

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

于 2012-02-16T10:05:34.847 回答
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列出了一些关于服务器端功能检测如何提供帮助的示例,包括响应式设计和服务器端世界如何一起发挥作用。

于 2012-02-21T10:00:34.157 回答
2

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

我想指出的唯一另一件事是 WURFL 和响应式 Web 设计不必是独立的世界。这个这个帖子有我对这个主题的看法。

更有趣的是,我们最近推出了一项服务,使一些 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();
}

这就是你要找的。

谢谢

于 2014-04-07T03:01:10.230 回答