代码之家  ›  专栏  ›  技术社区  ›  fantactuka

生成网页的合理时间是什么时候?

  •  12
  • fantactuka  · 技术社区  · 14 年前

    我正在开发web应用程序(基于Rails 3)。我真的不喜欢生成页面所需的时间——这取决于显示的数据,它需要2.5秒甚至4秒。

    所以我想知道在你的应用程序中生成页面的平均合理时间是多少。假设您检查生成时间,例如750毫秒,并认为“好的,即使没有缓存也应该没问题”。或者当你看到1.5秒时,你会想“天哪,用户不会等那么久就离开网站”

    5 回复  |  直到 14 年前
        1
  •  13
  •   samy    14 年前

    从查询到渲染的时间和用户体验都有大量的研究数据。我建议你读书 this useit.com article . 毕竟,谷歌在其结果中集成了页面速度是有原因的;)

    3个响应时间限制是 今天和我写的时候一样 1993年(基于40年的研究 由人为因素先驱者:

    • 0.1秒给人一种瞬间反应的感觉,即 结果好像是由 用户,而不是计算机。这个级别 对 支持直接的感觉 操纵(直接操纵是 图形用户界面的关键技术之一 增加用户参与和控制 要了解更多信息,请参阅我们的原则 界面设计研讨会)。
    • 1秒让用户的思维流畅无缝隙。用户可以感觉到 延迟,因此知道计算机是 产生结果,但他们仍然 掌控全局 经验和他们的行动 自由而不是等待 电脑。这个程度 良好的反应能力是必要的 导航。
    • 10秒可以保持用户的注意力。从110秒开始,用户 一定会被 希望能快点,但是 他们能应付。10秒后, 他们开始考虑其他 事情变得越来越难 一旦电脑启动,大脑就会回到正轨 终于有反应了。

    10秒的延迟通常会 用户立即离开网站。以及 即使他们留下来 他们想知道发生了什么, 使他们不太可能 完成任何困难的任务。

    作为一个经验法则,您应该始终以优化时间与获得的时间之间的平衡为目标。当你的图片没有被正确压缩,或者你的脚本/css没有被合并的时候,不要花太多时间去优化一个程序。是的,更快更好,但是通过设置智能缓存来生成页面的90%的增益比调整算法一周后的10%的增益要好。

    当框架必须加载所有内容时,也不要过多地考虑第一次呈现的时间,而是使用压力测试(缓存与否)来模拟各种情况。

    现在,一些数据;我最近工作的一些站点使用了DotNetNuke,一个巨大的开源CMS,以及Asp.NetMVC让你更接近金属。DotNetNuke的平均db查询页面时间为600-700毫秒。为了Asp.netMVC,70-100毫秒。。。用户非常喜欢第二个:)

        2
  •  5
  •   Tim Fountain    14 年前

    没有“正确”的答案-越快越好。就我个人而言,我通常的目标是<200ms,尽管我从经验中知道,在Rails中,除了简单的应用程序之外,要实现这一目标是相当困难的。试着找出你的瓶颈在哪里,并缓存你能缓存的。

    编辑:页面生成时间和页面呈现时间之间似乎有些混淆。显然是一个快速的页面 提供 这是我们的目标,在大多数做诸如减少HTTP请求之类事情的网站上,gzipping CSS/JS是您可以获得大多数快速成功的地方。但是,如果页面本身需要4-5秒来生成,那么你的应用程序应该从哪里开始可能是对的。

        3
  •  2
  •   Alec    14 年前

    这取决于是否在2.5-4秒内不显示任何内容,或者用户从一开始就已经看到了页面的(一部分),并且在2.5-4秒后完全完成加载。在这种情况下,用户不会经历2.5-4秒的加载。拿着 http://www.nytimes.com/ 网站;我马上就能看到大部分内容,但根据网站检查员的说法,完全加载需要1.94秒。

    同时请记住,速度还将取决于浏览器、计算机、互联网连接。对你来说快的可能对别人来说慢。

        4
  •  0
  •   Coderama    14 年前

    测量你的apdex分数,看看它的表现如何。这会给你一个粗略的暗示。从那里,您可以决定如何提高性能。

    它还取决于您的站点是什么;业务或软件即服务(SaaS)的系统应用程序?如果它是一个系统应用程序,用户必须使用它才能协商性能。如果是SaaS,那么apdex得分越高,就越有可能失去用户的兴趣。

    有一些宝石可以测量性能并报告apdex是什么。

    以下是更多信息: http://apdex.org/blog/?p=630

        5
  •  -5
  •   BarsMonster    14 年前

    我的个人规则-任何页面都不应该超过0.05秒,否则你会遇到麻烦。

    只要你写了正确的代码,你就不需要花太多时间在优化上,以保持在0.05以下。

    如果你坚持使用巨型框架,那么你就失去了运气。