Tag: long polling

AJAX长轮询不适用于IE

我似乎遇到了长轮询和IE的问题。 这是我第一次涉足长期投票,因此我设置了一个简单的测试,看看我是否可以使它工作。 它似乎与FF和Chrome表现得很好,但我在IE上得到了不同的结果。 首先,这里有一些代码: HTML / JavaScript的: Untitled Document //<![CDATA[ $(document).ready(function() { (function poll() { $.ajax({ url: 'events/alert-data.php', success: function (e) { $('#results').append($('Success: ‘ + e.text + ”).fadeIn(1000)); }, error: function (e) { console.log(e); }, dataType: ‘json’, complete: poll, timeout: 10000 }); })(); }); //]]> hello PHP: <?php $time = time(); while (time() – $time […]

NodeJS HTTP请求连接的close事件被触发两次

我正在使用NodeJS中的长轮询实时AJAX应用程序。 我想检测用户何时关闭具有待处理长轮询请求的选项卡。 我使用NodeJS连接关闭事件: request.connection.on(‘close’, function () { console.log(request.url); … }); AJAX循环如下所示: var EventLoop = new (function () { var self = this; this.listen = function () { $.postJSON( ‘recieve-events’, { /* some data not important for this issue */ }, function (data) { … self.listen(); } ); } })(); 这就是postJSON函数的定义方式: $.extend({ postJSON: function (url, data, […]

jQuery ajax php长轮询

我一直试图让这个长的轮询脚本工作,但我一直卡住了。 这次我遇到了对服务器的ajax请求的问题。 提供数据的php脚本(使用循环和hibernate运行长轮询)完全正常,但我的jQuery脚本却没有。 到目前为止,我已尝试使用普通的$.ajax()请求和$.post()请求,但是当我这样做时,整个脚本都会停止。 好吧,脚本实际上加载了它应该,但页面显示它继续加载(使用谷歌浏览器它显示屏幕底部的“等待”栏)。 在PHP脚本中60秒超时后,jQuery脚本收到“false”,因为没有找到数据。 然后该脚本应该询问数据agian。 我的问题是:如何避免浏览器显示它在后台加载某些东西? 我的服务器是一个共享服务器,所以我在服务器本身安装东西时没有访问权限所以这只需要使用javascript(jQuery)和php来解决。 编辑:刚刚在Internet Explorer中检查了我的脚本,它似乎没有显示脚本正在加载的任何迹象,但它仍然是谷歌Chrome中的一个问题 编辑发布一些代码: 这是我的javascript文件: if($(“#interestboard”)) { var lasttime = $(“#lasttime”).val(); var pollurl = $(“#pollurl”).val(); lpStart(); } function lpStart() { $.ajax({ type: “GET”, url: pollurl+lasttime, async: true, cache: false, success:function(data) { alert(data); }, error: function() { alert(“Something went wrong”); } }); } 当然这包含在$(document).ready() 我的PHP脚本如下所示: while(time()-$timeclass = $class[“id”]; […]

使用PHP,MySQL和jQuery的长轮询技术的Web聊天应用程序

我们正在使用我们公司的聊天系统,它使用Ajax,PHP和jQuery构建。 目前它在管理端和用户端每秒刷新一次从mysql中提取数据。 这使得系统效率低下且速度慢。 我想只在用户或管理员发送消息时从mysql中提取数据。 但问题是:我将如何从管理员端检查用户是否发送消息(实时)? 在Ajax中是否可以实时同时发送数据/请求2个不同的PHP页面? 这可能是一个解决方案。 或者有什么想法来建立高效的聊天系统? 我们不想使用任何第三方聊天解决方案。 任何想法/帮助将受到高度赞赏。 谢谢, Rejoanul Alam

服务器端PHP长轮询

我已经提出了许多问题并尝试了许多不同的事情(编写和阅读教程)关于网络上的长轮询,在尝试长时间轮询时没有关于编写服务器端php的可靠结果。 我设置了客户端和服务器端代码。但是我有一些问题。 该呼叫不会从2周前调用的最后一个插入ID调用新记录 我尝试了很多不同的东西,这些结果并不是我想要的。 我需要的只是登录的用户查看自从Feed中的上一篇文章以来朋友发布的任何新post。 ajax选择Feed中最后一个工作正常的ID。将此发送到我的PHP。 我希望我的php然后决定数据库中是否有一个新post的id高于它发送的当前ID。 使用JSON将其发回并将其插入到Feed中。 如果它根本没有任何东西,那么就不发布任何内容。但是它的发布内容并没有发布新的结果。所以它错了。 我正在考虑让呼叫持续大约一分钟也停止对我的服务器的大量呼叫。 我怀疑这里有很多人都有打电话给服务器的经验,所以真的可以找到我搞砸了的地方。 我认为它本身就是PHP代码,因为我不习惯使用JSON和WHILE循环。 这就是我所拥有的 AJAX $calls = “SELECT FROM streamdata ORDER BY streamitem_id DESC LIMIT 1”; $chants = mysqli_query($mysqli, $calls) or die(mysqli_error($mysqli)); $streamitem_catch = mysqli_fetch_array($chants); ?> function wait() { var streamitem_id =; $.ajax({ type: “POST”, url: “testingajaxfeed.php?streamitem_id=” + streamitem_id, async: true, cache: false, dataType: “json”, data: […]

使用jQuery和PHP实现长轮询

我想建立一个基于JavaScript(jQuery将用于AJAX)和PHP的聊天。 我听说这样做的好方法是使用长轮询。 我理解这个想法,但我不知道如何在服务器端实现它。 无限循环听起来像个坏主意。

jsonp彗星悬挂请求会在浏览器上导致丑陋的“加载”状态

我正在使用jsonp来做跨域彗星请求,而“加载”状态真的很烦人。 有没有办法用javascript来抑制这个? 对于那些不熟悉jsonp的人来说,它基本上会注入一个脚本标记,除了在我的情况下,我将请求挂在我的服务器上,直到稍后才返回请求。 在此期间,浏览器将我的请求视为“加载”状态。 我正在使用此: http : //code.google.com/p/jquery-jsonp/ 提前致谢!

使用jQuery和PHP进行长轮询

所以,我一直在尝试使用jQuery库和PHP进行Long-Polling。 我这样做,所以我可以在未来制作某种实时通知系统。 我现在的代码并没有真正起作用。 的index.php Long Polling $(document).ready(function() { getData(); }); function getData() { $.ajax({ type: “POST”, url: “ajax.php”, async: true, timeout: 50000, data: “get=true”, success: function(data) { $(“#info”).append(data); setTimeout(“getData()”, 1000); } }); } Ajax.php

这是一次真正的长期民意调查吗?

经过大量试验,我成功地能够与数据库保持连续的服务器连接。 现在代码keet cheking并显示消息,如果数据库中有新的。 Plz检查并判断此代码中是否使用了真正的长轮询技术? 如果不是,那么PLZ建议,我错了(偏离长轮询)以及如何做一个真正的长轮询。 Currenlty,我收到了这些错误。但它仍然保持与数据库的连续连接。 每次只抽取一条消息而不是全部消息。 (我使用.each循环,但它停止长轮询) 每10/15秒后,出现令牌错误( Parse erroe(语法错误=意外令牌) )。 var last_msg_id = 2; function load_msgs() { $.ajax({ type:”Post”, url:”getdata.php”, data:{ last_msg_id:last_msg_id }, dataType:”json”, async:true, cache:false, success:function(data) { var json = data; $(“#commidwin”).append(json[‘msg’]); last_msg_id = json[“last_msg_id_db”]; setTimeout(“load_msgs()”, 1000); }, error:function(XMLhttprequest, textstatus, errorthrown) { alert(“error:” + textstatus + “(” + errorthrown + “)”); setTimeout(“load_msgs()”, […]

长轮询如何工作javascript?

嗨,据我所知,在长轮询中,您可以长时间保持与服务器的连接打开,直到您从服务器获得响应,然后再次轮询并等待下一个响应。 但是,我似乎不明白如何编码它。 下面有这个代码使用长轮询,但我似乎没有得到它 (function poll(){ $.ajax({ url: “server”, success: function(data){ //update page based on data }, dataType: “json”, complete: poll, timeout: 30000 }); })(); 但是如何在这里保持连接。 我知道一旦获得服务器的响应,就会再次触发“poll”函数。但是如何保持连接打开? 编辑1: – 如果有人也可以解释这里实际超时的情况,那将会很棒