性能基准:PHP生成的内容VS。JavaScript和DOM over AJAX

php javascript ajax soap

2772 观看

4回复

479 作者的声誉

对于以下非常简单的任务:从数据库中查询产品列表并将其显示在网页上,请 考虑2种设置:

Setup1:PHP脚本查询。所有内容都构建在服务器上,并且整个页面都返回给客户端。

Setup2:使用AJAX请求内容的静态HTML“页面框架”。接收到的内容使用Javascript在客户端进行解析,并使用innerHTML或类似内容呈现。

当然,只有当您有可供客户选择的页面,类别和标签时,第二种设置才有意义。

我需要至少通过以下方式比较这两个:

  • 内容需要花费的时间
  • 用户体验(setup1整体交付,setup2分为“两部分”交付)
  • 可扩展性-每天有100,000个查询时,设置如何进行比较

任何对此问题的想法将不胜感激。

作者: gnosis 的来源 发布者: 2009 年 1 月 10 日

回应 (4)


1

9635 作者的声誉

当仅一小部分页面更改时,AJAX可能是更好的选择。

我建议从服务器端版本开始,然后在此之上构建AJAX。这样,您还将获得一个无需JavaScript即可运行的网站版本,如果您希望在搜索引擎中建立索引,则可能仍需要使用该版本。

但是首先要集中精力创建一个可以正常使用的页面-您以后可以随时对其进行优化。

作者: Rene Saarsoo 发布者: 10.01.2009 08:20

1

161871 作者的声誉

客户的表现有很多因素。当时正在运行什么,什么浏览器,内容是什么,页面的CSS是什么,浏览器的缓存有多满,安装了哪些插件,网络上正在发生什么,等等。请记住,当你在玩数字。

作者: epascarello 发布者: 10.01.2009 01:56

0

2364 作者的声誉

除非实现糟透了,否则AJAX应该放手一搏。好处包括:

  • 由于客户端上的并行请求而导致的并行性(即,您可以使用多个服务器CPU内核来提供一个服务的网页的一部分,而使用PHP则无法轻松完成)

  • 仅刷新页面的一小部分速度更快(更少的数据要传输,生成...)

  • 由于服务器的工作量较少,它的伸缩性要好得多(尤其是如果您可以将生成html所需的一些处理工作分担给客户端,而不仅仅是将其交付的话)

http://www.startpagina.nl/之类的动态页面自从最近的AJAX流行(已交付1个静态文件,所有自定义均在客户端完成-无论如何我最后一次检查)之前就已经成功地做到了这一点。

当然,您可以使用任何一种方法来解决问题,以使其变得比另一种方法慢。

作者: mjy 发布者: 10.01.2009 02:06

9

27572 作者的声誉

决定

您可能会发现以下问题很有帮助:SmartyVs。Javascript / AJAX

在回答这个问题时,我提出了几点:

  • 您应该使用服务器端脚本来显示页面加载时已知的所有数据。在这种情况下,您知道应该显示产品列表。应该在页面加载时显示问题答案的事实。

  • 您只应使用AJAX调用来加载页面加载时尚知道的动态数据。例如,当您单击堆栈溢出问题或答案下的“评论”链接时。您想要查看特定问题的评论的事实在页面加载时是未知的。

  • JavaScript的应该要求你的网站的访问核心功能

  • 禁用Javascript后,应适当降低功能。例如,在禁用Javascript的情况下,Stack Overflow可以正常工作。您无权访问Markdown实时预览或动态徽章通知,但核心功能仍然完整。

  • 对服务器生成的页面的单个HTTP请求的加载速度将比对进行五个或六个其他AJAX调用的页面的请求的加载速度显着提高,尤其是在高延迟连接(例如蜂窝网络)上。请参阅Yahoo 加快网站访问最佳做法

您应该将Javascript视为可能无法启用的额外功能,而不是应用于构建网站关键部分的功能。此规则有例外。如果要进行某种分页,单击“下一页”按钮,而只更改产品列表,则AJAX可能是正确的选择。但是,您应该确保不使用Javascript的用户不会被排除在查看整个列表之外。

没有什么比无法访问页面更令人沮丧的了,因为Web开发人员没有遵守KISS原则。例如,以Friendly's Restaurants为例。我想在购物中心购物时查看他们的菜单,所以我在iPhone上加载了他们的网站,却发现如果没有Flash,您实际上无法获得有关餐厅的任何有意义的信息。到处都是花哨的菜单,到处都是飞扬的甜点,但是最后,我只想看看菜单上的项目。我不能这样做,因为他们需要Flash。在这种情况下,服务的正常降级将有所帮助。

没有Java脚本,网络上的某些事情将无法有效完成。显示产品列表不是其中之一。如果您仍然不确定,请查看其他流行网站的工作方式。我认为您会发现大多数成功,精心设计的网站都遵循上述指南。

作者: William Brendel 发布者: 10.01.2009 02:27
32x32