2

我是网络编程的新手。我有基本的 PHP 编程技能。

根据我对 PHP 的了解,它在服务器端运行并生成 HTML 代码,服务器端 PHP 脚本结束,然后将生成的 HTML 代码发送给我们(我们 = 客户端的浏览器)。但是在我在互联网上遇到的一些网页(使用 PHP 编程)中,即使页面完成加载很长时间,服务器-客户端交互也会在后台静默运行。

例如,在 Stack Exchange 社区中,当我查看新问题时,我看到投票数正在发生变化(正如其他用户投票一样),而无需刷新页面。这表明后台脚本正在与数据库通信,对吗?

这些页面是纯PHP实现的吗?
如果是,我认为 PHP 脚本必须在发送生成的 HTML 代码之前在服务器端完成。这种方法的秘诀是什么?如果不是,我还需要学习哪些其他编程语言和/或网络技术才能学习它?他们是否将其他技术与 PHP 结合起来?

请指导我。

4

5 回答 5

5

这不是 PHP 主动运行,这是AJAX

于 2012-08-04T13:25:15.693 回答
1

您正在询问达到目的的方法(如何使页面动态化),而您需要了解的似乎是目的(动态页面)。

您对 PHP 的工作原理基本上是正确的。

根据我对 PHP 的了解,它在服务器端运行并生成 HTML 代码,服务器端 PHP 脚本结束,然后将生成的 HTML 代码发送给我们(我们 = 客户端的浏览器)。

但是,您忽略了有关网页如何工作的事情:服务器要发送任何内容,例如网页,必须有来自客户端的请求。因此,询问服务器如何在没有客户端请求的情况下执行此操作会更合适。

要回答您的一些问题:

这些页面是纯PHP实现的吗?--> 不,不是。

如果不是,我还需要学习哪些其他编程语言和/或网络技术才能学习它?--> 与特定的 PL 或技术相比,更明智的做法是考虑“服务器如何启动与客户端(浏览器/页面)的通信?” (或让它看起来好像),因为这是实现此类页面的“秘密”(或更恰当地说是关键)。您可以找到许多处理此问题的技术、技巧和两者的组合(推送技术、长轮询、ajax 等)。

他们是否将其他技术与 PHP 结合起来?--> 是的,与网络上的大多数内容一样,动态页面是多种技术和技巧的组合。

我相信你以错误的角度看待你想要完成的事情。希望这能让你走上正轨!

于 2012-08-04T15:20:56.767 回答
1

没有一种语言可以构建整个网页。您看到的现代网页是使用多种语言生成的。

于 2012-08-04T13:37:30.013 回答
0

即使在服务器端使用 AJAX 处理结束后,前端仍会继续与后端通信。AJAX 可以而且应该与任何后端技术相结合,如 JAVA/ASP/PHP/PYTHON 等,以创建动态网站。

于 2012-08-04T13:26:00.083 回答
0

简短的回答是:你不能。

您在某些网站中看到的持续交互是通过使用称为 Ajax 的 Javascript 技术实现的,该技术会定期(或基于鼠标单击等浏览器事件)在后台调用 PHP 脚本并根据该响应执行某些操作。

于 2012-08-04T13:30:06.940 回答