Ajax cakephp或php中的实时数据更新
我正在开发一个CakePHP2.x 我的查看页面上有一个加载器/微调器,它正在等待用户移动设备的响应。不幸的是,我完全不知道如何从移动设备获取请求,并实时更新页面内容 下面是函数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/
<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发送一些参数,这样我就可以停止旋转器了。。