哪个会更快我的网站的功能 - Ajax或非Ajax?

时间:2011-08-04 12:20:18

标签: php ajax

我想在我的网站上的表格中显示数据库查询的结果。在查询之后最多可以显示1000行10列(尽管由于过滤器选择,这通常会更少)。

我不确定是否应该:

  • 创建一个ajax请求,返回一个JSON字符串,然后我将使用客户端来构造表,或者
  • 发出正常的同步请求,并将页面构造为服务器端(PHP)

我假设服务器端方法会更快一点,但我没有什么可继续的,构建表的客户端代码可能比PHP更复杂。

人们认为哪种方法可以更快地显示结果表?

任何其他(建设性:))的想法都会受到欢迎。

非常感谢

3 个答案:

答案 0 :(得分:3)

你必须衡量。

方面:

  • Ajax通常涉及额外的请求,这需要时间并在服务器上生成负载。如果您有高负载服务器,则可能需要平衡请求数量与每个请求的字节数
  • 您网站的使用:如果用户通常只看到前10个对象,则只有5%的用户进入第二页,0.5%的用户进一步向下翻页,其原因与80%的用户向下翻页的情况不同第5页
  • 你也可以想到来自两个世界的东西:传输50行,显示10并且仅在第6次寻呼请求之后通过ajax更多

您想要优化什么?服务器负载?客户响应?传输的字节数?传输时间?

答案 1 :(得分:2)

性能很棘手,只是问“哪个是最快的”很难纠正。

随着用户数量的增长,您将看到不同的性能特征。如果您在服务器上进行大部分处理,那么随着更多用户的添加,服务器会变得更加繁忙。如果您将一些工作卸载到客户端,那么随着更多用户的加入,您将获得在其计算机上完成的一些工作的好处。所以实际上你会看到两种不同的性能曲线,它们可能在某些时候交叉。

我会这样开始:

A)。尽可能快地瞄准目标。极端地说,这种方法会导致无法维护的代码,可能使用汇编程序编写的位,在Blue-gene服务器上运行。顺便说一句,这是一个笑话,但重点是在某些时候表现“足够好”。获得明确的要求,支持X用户,利用此响应时间,完成该工作......包括有关可用性的要求。您可能会因为易于使用而牺牲性能。

B)。尝试提供您想要的用户体验的方法,进行测试。假设对于合理的用户群,你得到了很好的亚秒级响应(或者你的目标可能是什么),那么就好了。

C)。 Ajax方法的一个优点是它可以从预取和缓存中获得很多好处。您的申请可能会从中受益吗?在这种情况下,应用程序的感知性能可能会很好,而不会“优化”Ajax的东西。

答案 2 :(得分:1)

第二个选项(即构建表服务器端)将是最快的解决方案!

通过返回JSON然后构建表格,您将浪费时间,并使用:

  1. json_encode
  2. 迭代JSON以构建标记