我想创建某种AJAX脚本,或者如果有任何新消息到达,将继续调用MySQL数据库。当数据库中有新消息时,AJAX脚本应该调用一种警告框或消息框。
我不是一个AJAX专家(但无论如何)并且已经用Google搜索来找到解决方案,但我很难弄清楚从哪里开始。我想这与AJAX聊天用于查看是否已发送任何新聊天消息的方法相同。
我还尝试在连续无限循环中搜索AJAX(httpxmlrequest)调用,但还没有得到解决方案。
我希望有人可以帮我解决这样一个AJAX脚本,或者可能会让我朝着正确的方向努力。
由于 诚挚 Mestika
答案 0 :(得分:2)
步骤1 - 您需要一个可以调用的服务器端页面,检查是否有新内容。
第2步 - 您可以从此处调整顺序AJAX请求脚本(它使用jQuery来简化AJAX请求):
http://www.stevefenton.co.uk/Content/Blog/Date/201004/Blog/AJAX-and-Race-Conditions/
目前,此脚本用于排队顺序AJAX请求列表,但您可以通过更改它来连续检查...
var InfiniteAjaxRequest = function (uri) {
$.ajax({
url: uri,
success: function(data) {
// do something with "data"
if (data.length > 0) {
alert(data);// Do something sensible with it!
}
InfiniteAjaxRequest (uri);
},
error: function(xhr, ajaxOptions, thrownError) {
alert(thrownError);
}
});
};
InfiniteAjaxRequest ("CheckForUpdate.php");
使用此脚本有什么好处?
好吧,它不会检查每个“x”秒,而只会在收到上一个请求后检查,因此它会链接请求。您可以添加延迟来限制此常量请求,我强烈建议您这样做 - 否则您将以过多的流量访问您的网站。你应该在响应之后添加延迟,但是在你回调“InfiniteAjaxRequest”之前。
答案 1 :(得分:2)
这是你的轻推:
setInterval()
以调用您刚刚重复制作的功能答案 2 :(得分:0)
有一种名为Comet的技术,您的客户端脚本会在其中实例化一个长时间保持打开状态的HTTP请求。然后,服务器可以在响应发生时将数据推送到响应中。这是一种提供push notification的技术。
维基百科链接提供了有关实际实施的更多信息。
答案 3 :(得分:0)
您可以使用推送技术(COMET),而不是使用AJAX调用轮询服务器。 这样,只要服务器完成工作,您就可以将结果推送到客户端。 有许多框架可用,如: