0

我最近开发了一个在线购买网站。我的问题是如何在将新订单插入 MySQL 时在管理页面创建通知以发出警报。此通知将在网站的管理页面上显示为图标编号,以便管理员打开网站时他们会知道客户已下新订单。

我知道我们必须使用 javascript ajax,但我不知道如何开始。

我有一些示例代码:

refreshInterval = 500
refreshTimeout = setTimeout(getNotificationCounts, refreshInterval);

function getNotifications() {
  $.ajax({
    url: 'path_to_your_php',
    type: 'POST',
    data: //put for example user_id but it cvan be handled by sesion as    
    dataType: 'json',
    success: function (data) {
      alert('You have' + data.total + ' new messages')
      refreshTimeout = setTimeout(getNotificationCounts, refreshInterval);
    }
  });
}
4

1 回答 1

1

您的问题有两种选择。您正在寻找的是持久的 http 连接。

  1. 如果您不介意解决方案的浏览器支持,您可以使用 websockets。它们是 html5 api 的一部分,但并非所有浏览器都支持它们,而且它是一个新事物,因此只会支持新版本。在这里查看更多http://www.html5rocks.com/en/tutorials/websockets/basics/
  2. 第二种选择是长轮询。基本思想是客户端定期对服务器进行 ajax 调用,但不会立即返回,如果服务器有响应,或者达到特定时间量,它就会返回。您也可以进行简单的轮询,但这不是一个好习惯,因为您在大多数情况下都会无缘无故地对服务器进行大量调用。长轮询技术也称为彗星技术。调查一下,然后带着一些更集中的问题回来。

如何实现基本的“长轮询”?

在这里,您可以找到您想要做什么的基本示例。也很详细。

于 2013-05-13T04:48:43.197 回答