php - Ajax/js 刷新,限制从 php/sql 显示/获取的内容

标签 php javascript ajax

长话短说,我正在尝试构建一个聊天应用程序......好吧,它已经构建好了,但是,我一直在尝试在其中实现 AJAX。本质上,当用户发布消息时,消息来自数据库,消息会自动反射(reflect)在页面上,而无需刷新页面。

在 javascript 方面,我能想到的唯一可以在没有用户输入的情况下运行的事件是 javascript setInterval() 函数,我目前已将其设置为每 5 秒重复一次。

在有消息(回显)的 PHP 端,我有一个仅显示 最近 10 条消息。

问题是,每 5 秒,它就会发出同样的 10 条消息。一遍又一遍...破记录有点哈哈。无论如何,我不知道/无法弄清楚如何实现,是一种过滤器,或者一些东西,上面写着“

hey only show me the last 10 messages and update ONLY when there is new content.

"

所以我需要的是一些东西(我假设是javascript,因为它刷新页面),它表示仅在其新内容时才显示最新的x帖子。我在想也许是一个 if/else 将一个值与另一个值进行比较,然后如果 false/true,则运行刷新...但是 我拿什么来比较???

如你所见,我被卡住了。

我不发布代码,因为它很多......不想在这里放置两 block 代码,但本质上 PHP 从数据库部分读取行,并通过 echo 从数据库发布最新的 10 个帖子。

并且 Js 有 AJAx 命令来获取这些消息并将它们发布到页面上。

再说一次,除了在 ajax/js 刷新上重新发布相同的 10 条消息之外,两者都有效。

任何提示、链接、逻辑...任何可以帮助我度过这个难关的东西,我都很高兴并谦虚地欣赏。

P.S - 如果您需要查看代码。让我知道并发布它,但我认为它很清楚。

提前致谢。

最佳答案

因此,网络聊天客户端会向服务器发出请求,而服务器会让它挂起,就好像它需要很长时间来处理一样,但相反,它会等待查看其他人是否发布了聊天或有什么内容你,一旦它这样做,它就会回复用户,如果达到最大超时时间,它只会允许连接实际超时,此时 javascript 会使其再次触发。这消除了初学者每 5 秒调用一次电话的讨厌功能。

关于php - Ajax/js 刷新,限制从 php/sql 显示/获取的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9991336/

相关文章:

java - 如何管理 Apache Web 服务器和 Google App Engine 之间的 HTTP 通信?

php - 在网页中嵌入 AVI/MPG

javascript - 为什么某些 JavaScript 变量通过在变量名后面放置 0 来访问?

javascript - Gulp + karma + jasmine + angular + singleRun :true = angular fails to inject

javascript - 解析日期并使用setdate

php - 如何在 Laravel 5.5 中包含外部 CSS 和 JS 文件

PHP 检查用户是否存在 PDO

ajax - Symfony $form->isValid() 在 ajax 调用上返回 false

python - 如何在python 3中获取该站点中的json数据?

javascript - 形成如何查找()电子邮件和密码输入