我通过以下方式使用 PHP 模拟推送通知:
- jQuery ajax 调用调用服务器上的脚本。
- 每次迭代后,脚本都会使用 for 循环和 sleep 来延迟。
- 如果发生某些情况 - 循环将被打破,信息将返回到 jQuery。
- 如果脚本运行超过一分钟 - 脚本将返回空值。
- 当 jQuery 从服务器收到答复时,它会解析该信息并再次启动相同的过程。
这是 Facebook 使用的一个程序,它在他们的网站上就像一个魅力一样。在我的服务器上,我遇到以下问题: 例如,如果脚本延迟了 60 秒,而我在第 30 秒单击网站上的另一个链接,那么我们还有 30 秒的时间来生成输出。因此,我的网络服务器正在等待这 30 秒,而我的点击请求将在这几秒后得到处理,这使得我的网站几乎无法使用。我仔细检查了 Facebook,发现当您单击链接时,页面永远不会刷新,并且请求不断在同一页面上流动。然而地址栏发生了变化。在我的网站上实现相同目标的方法是什么?有没有一种方法可以强制我的服务器一次处理多个 PHP 请求,或者我们必须仅使用 javascript 来执行此操作。我错过了什么?
P.S 据我所知,无法使用 javascript 更改地址栏。
最佳答案
实际上 HTML 5 中有。它称为 History API。
您可以在 GitHub 上找到带有源代码的快速演示:
深入了解 HTML5 中有关它的完整章节:
关于php - 使用 PHP 和 jQuery 模拟推送通知会导致服务器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10228403/