php - 使用 PHP 和 jQuery 模拟推送通知会导致服务器问题

标签 php javascript jquery push-notification

我通过以下方式使用 PHP 模拟推送通知:

  1. jQuery ajax 调用调用服务器上的脚本。
  2. 每次迭代后,脚本都会使用 for 循环和 sleep 来延迟。
  3. 如果发生某些情况 - 循环将被打破,信息将返回到 jQuery。
  4. 如果脚本运行超过一分钟 - 脚本将返回空值。
  5. 当 jQuery 从服务器收到答复时,它会解析该信息并再次启动相同的过程。

这是 Facebook 使用的一个程序,它在他们的网站上就像一个魅力一样。在我的服务器上,我遇到以下问题: 例如,如果脚本延迟了 60 秒,而我在第 30 秒单击网站上的另一个链接,那么我们还有 30 秒的时间来生成输出。因此,我的网络服务器正在等待这 30 秒,而我的点击请求将在这几秒后得到处理,这使得我的网站几乎无法使用。我仔细检查了 Facebook,发现当您单击链接时,页面永远不会刷新,并且请求不断在同一页面上流动。然而地址栏发生了变化。在我的网站上实现相同目标的方法是什么?有没有一种方法可以强制我的服务器一次处理多个 PHP 请求,或者我们必须仅使用 javascript 来执行此操作。我错过了什么?

P.S 据我所知,无法使用 javascript 更改地址栏。

最佳答案

实际上 HTML 5 中有。它称为 History API。

您可以在 GitHub 上找到带有源代码的快速演示:

http://html5demos.com/history


深入了解 HTML5 中有关它的完整章节:

http://diveintohtml5.info/history.html

关于php - 使用 PHP 和 jQuery 模拟推送通知会导致服务器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10228403/

相关文章:

javascript - 通过ajax根据php返回设置样式

javascript - firebase 在一处返回未定义的用户 ID,在另一处返回正确的值

javascript - 直接在 JSX 中设置样式,当值改变时改变

javascript - 如何在 extjs 中正确设置按钮的图标大小?

javascript - 如何使用 JavaScript 添加 jQuery 到 Head?

javascript - 元素中心的过渡宽度

php - 遍历 while 循环并将数字相加

javascript - append 函数将以前的数据附加到新数据

javascript - 如何使用 JQuery 为“下一个”和“上一个”按钮创建有效的方法来显示/隐藏单个 HTML 页面的部分?

php - 将数据从 PHP 表单发布到 File maker pro 12 服务器上的 File Maker 数据库