许多HTTP请求(API)Vs Everything in single php

时间:2013-12-25 12:13:39

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

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

让我们以twitter为例来解答我的问题。让我们说我正在制作推特。现在在home_page.php上,我需要关于推文的数据(Tweet id,推文,推文时间等等)和关于用户的数据(userId,用户名,用户个人资料pic)。

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

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

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

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

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

请给我一些关于挑选最佳的建议。此外,我仍然是一个学习者,所以如果有更多的选择实现这一点,请分享。

3 个答案:

答案 0 :(得分:1)

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

将您的代码拆分为可管理的php文件,使其更容易阅读,并在一个主要的php文件中需要它们;这不会占用任何额外的http请求,因为所有包含都是在服务器端完成的,并且会返回1页。

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

答案 1 :(得分:1)

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

在网络编程中,通常可以最大限度地减少网络请求的数量,因为每个请求都会产生超出原始数据传输所需时间的开销(由于特定于协议的信息传输和例如,建立连接所需的时间。)

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

答案 2 :(得分:1)

添加到Kiee的回答:

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

但是您必须要做的是:创建一个API以使您的页面生动。无论你使用哪种方法......