2010-05-10 176 views
5

您认为在Web脚本(例如PHP)开始成为用户烦恼(平均)之前要执行的最大时间是多少?我一直认为,如果用户必须等待超过1秒钟才能加载页面(这当然是在图像和css被缓存后,这个规则只适用于后续请求),他们会开始恼火。执行脚本需要多长时间?

回答

13

42秒。

其实,事实上,它更多的归结于你所面对的用户的年龄和期望。例如,我的父母可能更容忍延长的等待时间,但也更有可能一次又一次地按下按钮,就像他们到人行横道或电梯按钮一样。

这就是说,真正的答案是,用户在没有反馈的情况下过多长时间?即使踢出一个快速沙漏标志或进度条,也可以为用户带来世界上的所有不同。也就是说,如果你提供的服务应该是实时的,并且像桌面应用程序一样,太长的时间基本上是“任何可感知的”。

所以,cop-out答案......它取决于。也就是说,即使是“太长”的等待,也可以通过适当的UI设计和客户交互来克服。

+2

+1反馈。复杂的东西总是需要很长时间(如果不是,他们不会很复杂),但是令用户感到沮丧的是缺乏反馈(我的电脑“无所事事”的感觉) – Agos 2010-05-10 08:49:28

+0

好的答案在这里! – sepehr 2010-05-10 09:00:21

+0

+1(不是这样)隐藏引用 – Eineki 2010-05-10 09:06:24

1

对于PHP脚本执行,default limit是30秒。如果你只是从用户的角度来看,要求再凭经验将是越快越好......

0

凡是需要比过程几秒钟时间更多的应该是不同的处理,这里有一些例子

  • 缓存其输出服务器端
  • 运行cron作业,做了处理
  • 菌种与PHP仿过程中使用system()
0

我的经验法则:

保持服务器端处理的平均的情况下,肯定在最坏的情况下,30年代第二。

0

我会说几秒钟后,你应该打电话(PHP)ob_flush(),并至少发送给客户。否则,电梯效果将接管,用户将重复刷新。至于总页面加载,只要您保持用户发布,则无关紧要。进度条将对此有所帮助。

0

久经考验的策略始终是为了管理期望。不要让用户再次猜测你或你的应用程序。如果按照您的基准测试,特定页面的平均处理时间将超过6秒的阈值,在用户点击按钮之前就这么说。这很像是等待网站向您发送确认电子邮件,不知道何时会到达,因为从未提及可能需要几个小时,因为流量超出了网站的控制范围。

10

Jacob Nielsen已经做了一些research on this.

  • 0.1秒是关于用于使用户觉得系统瞬间反应的限制,这意味着没有特殊的反馈是必要的,除了显示结果。
  • 1.0秒是即使用户会注意到延迟,但用户的思维流程保持不间断的限制。通常,在延迟时间不超过0.1秒但小于1.0秒时,不需要特殊的反馈,但用户确实丧失了直接对数据进行操作的感觉。
  • 10秒是关于保持用户注意力集中在对话上的限制。对于较长时间的延迟,用户需要等待计算机完成时执行其他任务,因此应该给出反馈,指出计算机何时完成。如果响应时间可能高度变化,则延迟期间的反馈尤为重要,因为用户将不知道该期待什么。

以服务为灵感,你可以看看NetBeans社区interpret these values如何:

  1. 0.1秒 - 导航和编辑的操作(例如文件夹扩张,贴在编辑器,导航并且所有菜单栏的绘制必须在此限制内完成
  2. 1.0秒 - 所有窗口和对话框开口必须在t他的极限
  3. 10秒 - 晚于1秒后完成并且通常少于10秒的所有动作都必须显示某种忙碌指示(例如,小时玻璃光标或“请稍等......”文字);花费的时间超出此限制的所有行动都必须提供进度条使用API​​的进展
+0

+1来源报表。 – 2010-06-02 20:04:01

0

从我的经验,你应该给用户至少有一些,如果事情的要花超过几秒钟的通知。可能使用一些花哨的动画AJAX,并注意到“这将需要一段时间”。

如果您不能使用AJAX,并且您的PHP脚本需要加载超过10秒钟,请尝试考虑优化它的方法。