【问题标题】:jQuery vs. PHP - Performance ComparisonjQuery 与 PHP - 性能比较
【发布时间】:2011-06-10 12:52:37
【问题描述】:

在性能方面,哪个是更好的解决方案?这是一个非常小的例子。 PHP脚本返回一个数字给jQuery,如果是1需要检查,页面需要说“1个人”,否则“X个人”。

PHP 脚本会更快地进行此检查并返回“x 人”,还是让 jQuery 在获取数字后执行此操作?

【问题讨论】:

  • 答案是:没关系。性能应该是您在 Web 开发中最关心的问题。首先使其安全、实用、可靠和可维护。在您的特定示例中,我将发送一个 json 编码的数组:{ num_persons : 1 },更多是出于性能目的的前 4 个原因。

标签: php jquery performance


【解决方案1】:

我假设您有不同的情况,这只是一个示例 - 过于简化 -。这张支票很小,所以我怀疑你可以衡量差异,但可以说你有很多这些支票。

正如@mkoryak 所说,jQuery 是客户端,PHP 是服务器端。如果有 10^5 个用户请求此操作,您可能会在让 jQuery 执行此操作时看到一些差异:每个人都执行一次(并且看不到差异),但您的服务器可以少执行 10^5 次检查。反过来说,您的服务器可能比您的客户端快很多,因此对于 1 个客户端(很少,甚至一个客户端)的大量计算可能会更好地在服务器上运行(因此 PHP 将是您的选择)。

正如@slebetman 总结的那样:对于少量客户端,服务器端代码通常更快。对于非常多的客户端,将工作卸载到客户端代码可以大大提高性能。这就是@scunliffe 的答案所在:用压力测试测试你的解决方案!

【讨论】:

  • 我相信这是正确的答案,但语言不太清楚。第一句和第二句应该在同一个段落中,您应该将..jQuery is clientside PHP is serverside.. 位拆分为自己的段落,因为这是答案的核心。另外,我认为你应该用这句话来总结,最好单独作为一个段落:For small number of clients, server side code is generally faster. For very large number of clients, offloading work to client side code can greatly improve performancee.
  • “请求”? - 这是否意味着“请求”?
【解决方案2】:

正确答案始终是 - 测试/基准测试。这样你就知道哪个更好了。

也就是说,如果您正在对 PHP(一种服务器端语言)和 jQuery(一种客户端语言)进行基本比较,那么服务器端的应该会更快。但是,它始终取决于您尝试处理的逻辑。

【讨论】:

  • 测试是性能相关问题的最佳答案。
  • 好吧……但是 JavaScript 是一门语言,而 jQuery 是一个建立在 JavaScript 之上的框架。
【解决方案3】:

我真的不认为这是一个速度问题(尽管 PHP 可能会更快,除非它在非常慢的服务器上运行并且客户端机器速度非常快),更多的是关于什么是 更合适

在这种情况下,我会选择 PHP,因为一旦页面(和 jQuery 等)已加载,就没有理由在浏览器中进行此更改。

作为一般建议 - 除非您试图通过使用优雅降级的额外“装饰”(例如幻灯片等)来增加“默认”(即:无 JavaScript)用户体验的价值,否则请执行它在服务器上。)

【讨论】:

    【解决方案4】:

    jquery 运行在客户端,php 运行在服务器端。您无法比较两者的速度,因为一个甚至在另一个完成之前都不会开始执行。

    全部在 php 中完成

    【讨论】:

      【解决方案5】:

      这将取决于您的服务器硬件,但我想就您网站的整体性能而言,最好在客户端进行此类“装饰”。

      编辑: 此外,您需要提交给客户的数据更少。

      【讨论】:

        【解决方案6】:

        没关系,真的 - 性能瓶颈可能在其他地方。

        我更喜欢在服务器上执行此操作,因为支持非 JS 浏览器再次很重要(对于动力不足的移动设备、网络蜘蛛等等)。

        【讨论】:

          【解决方案7】:

          假设该数字来自您 OWN 网站中的资源(而不是您正在解析的其他网站的值):PHP 会更快。

          • 无开销(在页面执行时完成)
          • 不等待页面加载事件,然后执行 AJAX 查询,然后将其解析出来

          如果这是来自另一个页面的值,我仍然相信 PHP 更快(使用 cURL/fopen [如果站点允许]/等)。您说的是在将页面提供给用户之前运行的东西与将负载推送给用户并等待他们的页面首先加载然后填充字段的区别。

          不过,实际上,这仅取决于您希望用户体验如何。您希望它无缝还是尽可能少地加载并在页面加载时在其上构建?

          【讨论】:

            【解决方案8】:

            我认为您正在考虑性能而不是功能...让我先说 PHP 是 SERVER-SIDE 而 jQuery 是 CLIENT-SIDE。 PHP 的执行时间取决于你的服务器架构和配置; jQuery 基于您客户的计算机功能。 jQuery 也不能在旧浏览器或禁用 javascript 的浏览器中工作。 PHP 呈现标准 HTML,因此所有浏览器应该显示相同(显然这不是关于设计问题和兼容性的讨论)。

            【讨论】:

              猜你喜欢
              • 2010-11-14
              • 1970-01-01
              • 2010-11-04
              • 2017-08-09
              • 1970-01-01
              • 2023-03-25
              • 2021-12-14
              • 2015-10-22
              • 2022-01-18
              相关资源
              最近更新 更多