我是网络编程的新手。我有基本的PHP编程技能。
根据我对PHP的理解,它在服务器端运行并生成HTML代码,服务器端PHP脚本结束,然后生成的HTML代码发送给我们(我们=客户端的浏览器)。但是在我在互联网上遇到的一些网页(用PHP编程)中,即使在页面完成加载后的很长一段时间内,服务器 - 客户端交互也会在后台静默运行。
例如,在Stack Exchange社区中,当我查看新问题时,我发现投票计数正在发生变化(正如其他用户投票)而没有刷新页面。这表明后台脚本正在与数据库通信,对吧?
这些页面是用纯PHP实现的吗? 如果是,我认为PHP脚本必须在生成的HTML代码发送之前在服务器端完成。这种方法的秘诀是什么? 如果不是,我还需要学习哪些额外的编程语言和/或网络技术才能学习它?他们是否将其他技术与PHP结合在一起?
请指导我。
答案 0 :(得分:5)
这不是PHP正在运行,这是AJAX
答案 1 :(得分:1)
没有一种语言可以构建整个网页。您看到的现代网页是使用多种语言生成的。
答案 2 :(得分:1)
当你看来需要知道的是结束(动态页面)时,你问的是结束的方法(如何使页面动态化)。
PHP基本上是正确的。
根据我对PHP的理解,它在服务器端运行 生成HTML代码,服务器端PHP脚本结束,然后 生成的HTML代码发送给我们(我们=客户的浏览器)。
但是,您忽略了关于网页如何工作的事情:例如,对于服务器发送任何内容,例如网页,必须有来自客户端的请求。因此,在没有客户请求的情况下询问服务器如何执行此操作会更合适。
回答你的一些问题:
这些页面是由纯PHP实现的吗? - >不,不是。
如果不是,我还需要学习哪些其他编程语言和/或网络技术才能学习它? - >而不是特定的PL或技术,更明智地思考“服务器如何启动与客户端的通信(浏览器/页面)?” (或使其看起来好像)因为这是实现这些页面的“秘密”(或更恰当的关键)。您可以找到许多处理此问题的技术,技术和组合(推送技术,长轮询,ajax等)。
他们是否将其他技术与PHP相结合? - >是的,与网络上的大多数内容一样,动态页面是许多技术和技术的组合。
我相信你在错误的角度看待你想要完成的事情。希望这能让你走上正轨!
答案 3 :(得分:0)
即使在使用AJAX完成服务器端处理之后,前端仍继续与后端通信。 AJAX可以而且应该与JAVA / ASP / PHP / PYTHON等任何后端技术结合使用,以创建动态网站。
答案 4 :(得分:0)
简短的回答是:你做不到。
您在某些网站中看到的持续交互是通过使用名为Ajax的Javascript技术实现的,该技术定期(或基于浏览器事件,如鼠标单击)在后台调用PHP脚本并根据该响应执行某些操作