【问题标题】:Many HTTP requests (API) Vs Everything in single php许多 HTTP 请求(API)与单个 php 中的所有内容
【发布时间】:2013-12-25 12:13:38
【问题描述】:

我需要一些关于网站设计的建议。

让我们以 twitter 为例来回答我的问题。可以说我正在制作推特。现在在 home_page.php 上,我需要关于推文的数据(推文 ID、发推人、推文时间等)和关于用户的数据(用户 ID、用户名、用户个人资料图片)。

现在要显示所有这些,我有两个选择..

1) 制作单独的 php 文件,例如 tweets.php 和 userDetails.php。通过使用 AJAX 查询,我可以获取 home_page.php 上的数据。

2) 在 home_page.php 本身中添加所有 php 代码(连接到数据库,获取数据)。

在选项一中,我需要发出许多 HTTP 请求,(我认为)这些请求将加载到网络中。所以它可能会减慢网站速度。

但是选项二,我将定义一个 REST API。这将有利于将来添加更多功能。

请给我一些关于挑选最好的建议。另外我还是一个学习者,所以如果有更多的选择来实现这个,请分享。

【问题讨论】:

  • 没有严格的答案。对于作为学习者的你来说,这并不重要,只要做,然后再做。尝试所有方法,您将自己看到利弊。真的尝试两者。不需要很长时间。
  • 我想过。并且一直在做。但是我的网站不是很大,无法找出差异。所以我想为什么不问问一些真正有经验的人。

标签: php ajax web-services api design-patterns


【解决方案1】:

在数字 1 中,您依赖于不遵循渐进增强或优雅降级的 java 脚本;如果用户没有 JS,他们将看到零内容,这显然很糟糕。

将您的代码拆分为可管理的 php 文件,以便于阅读,并将它们全部放在一个主 php 文件中;这不会需要任何额外的 http 请求,因为所有的包含都在服务器端完成,并且 1 页被发回。

您可以像 twitter 一样添加额外的 javascript 来获取更多“推文”,但不要让主要功能依赖于 javascript。

【讨论】:

    【解决方案2】:

    不要将 PHP 应用程序视为映射到不同 URL 的 PHP 文件的集合。单个 PHP 文件应处理您的所有请求并根据需要包含功能。

    在网络编程中,最好尽量减少网络请求的数量,因为每个请求都会带来超出传输原始数据所需时间的开销(由于传输特定于协议的信息以及所需的时间)例如建立连接)。

    不要依赖 JavaScript。 JavaScript 可用于增强可用性,但不得用于提供应用程序的基本功能。

    【讨论】:

      【解决方案3】:

      补充 Kiee 的答案:

      它还可能取决于您的内容的大小。如果您的推文和用户信息非常大,则单个 PHP 文件的响应将需要相当长的时间来准备和交付。然后你应该选择“最小可行响应”(即最后 10 个推文 + 10 个最受欢迎的用户,或类似的)。

      但您必须要做的是:创建一个 API 让您的页面栩栩如生。无论您将使用哪种方法...

      【讨论】:

      • 当你说: create an API to bring your page to life.. 你到底是什么意思?
      • 如果您将所有数据放在 PHP 输出中并将其交付给您的用户,那么您就完成了。用户在该页面上时不会再发生任何事情。如果您希望刷新部分(显示新的 cmets、推文等),您将为新内容汇集一些数据源 - 即,您需要 Web 服务的 API 才能这样做。有意义吗?
      • 完全。知道了。谢谢!
      猜你喜欢
      • 1970-01-01
      • 2015-02-26
      • 2011-03-09
      • 2023-02-23
      • 1970-01-01
      • 2018-12-15
      • 2016-03-29
      • 2019-06-08
      • 2013-01-24
      相关资源
      最近更新 更多