Ajax cakephp或php中的实时数据更新

Ajax cakephp或php中的实时数据更新,ajax,json,node.js,cakephp,jsonp,Ajax,Json,Node.js,Cakephp,Jsonp,我正在开发一个CakePHP2.x 我的查看页面上有一个加载器/微调器,它正在等待用户移动设备的响应。不幸的是,我完全不知道如何从移动设备获取请求,并实时更新页面内容 下面是函数 <script> var cancelled = true; $.modal.prompt('Enter message :', function(value) { $.ajax({ type:"POST", data:{value:value}, url:"/cakephp/api/

我正在开发一个CakePHP2.x

我的查看页面上有一个加载器/微调器,它正在等待用户移动设备的响应。不幸的是,我完全不知道如何从移动设备获取请求,并实时更新页面内容

下面是函数

 <script>
var cancelled = true;

 $.modal.prompt('Enter message :', function(value)
{
  $.ajax({
  type:"POST",
  data:{value:value},
  url:"/cakephp/api/getData/",
  success : function(data) {
     //i am starting the spinner here .. 
   here i want to get the value from an android device ..as soon as i receive the value i want to stop the spinner
},
   error : function() {
   alert("error");
 }
    });
    }, function()
      {
   });
     };

var=真;
$.modal.prompt('输入消息:',函数(值)
{
$.ajax({
类型:“POST”,
数据:{value:value},
url:“/cakephp/api/getData/”,
成功:功能(数据){
//我在这里开始旋转。。
在这里,我想从android设备获取值。一旦收到值,我想停止微调器
},
错误:函数(){
警报(“错误”);
}
});
},函数()
{
});
};

我怎样才能做到这一点?

您可以通过三种方式做到:

1-使用
webSocket
它确实是实时的,您应该通过
javascript
客户端和任何
webSocket
服务器(如
node.js
ratchet
)创建webSocket连接。webSocket的缺点是一些旧浏览器不支持它

2-使用
Long polling
,它会像
AJAX
那样创建到服务器的连接,但是
保持活动状态
连接打开一段时间(虽然不长),在连接期间,打开的客户端可以从服务器接收数据。由于超时,客户端必须在连接关闭后定期重新连接。在服务器端,它仍然像
HTTP
请求一样对待
AJAX
。在客户端,您可以使用
javascript
库,如
strophe
,在服务器端,您可以使用
ejabberd
来长时间拉动服务器


3-每隔一段时间使用
AJAX
,您可以每隔一段时间发送一个请求,以检查是否从服务器中的用户移动设备收到任何响应。但是它不是真正的实时性。

jsonp呢?这在jsonp中可能吗?这取决于您。如果您的用户使用现代浏览器,最好的方法是websocket,如果不是长拉,则更好,但长拉比ajax有点复杂。JSONP是在Web浏览器中运行的JavaScript程序中使用的一种通信技术。它主要用于web服务,我认为这与您的问题无关。我从来没有在WebSocket上工作过。我甚至不知道关于它的事情。。谢谢你的回答。。因此,你是说这三个只是我的问题的解决方案。你的问题非常不清楚,如果你更详细地描述你的解决方案,那么我可以为你提供更详细的解决方案。先生,实际上,问题是我正在通过ajax向我的控制器函数发送一些数据。。一旦数据进入控制器..我就启动微调器。。。现在,在控制器函数中,我向在线api发送一些参数,如果api成功执行,它会给我一些结果。。记住api…api将一些数据发送到android设备//。。。现在我想从android向我的webapp发送一些参数,这样我就可以停止旋转器了。。