我希望在我的应用程序中实现反向ajax,它使用PHP和jquery。我已经搜索了一下它并发现了XAJA,但这似乎是一个付费的应用程序。是否有可用的开源应用程序或有人实现它?
一些指示或提示会非常有用。
提前致谢。
答案 0 :(得分:1)
我知道两种类型的反向AJAX:
1-投票
2-推
我认为轮询更容易实现,你只需让你的javascript每隔一段时间向服务器发出一次定期请求,当服务器有一些数据时它会响应。它就像一个ping,有些人称它为心跳,但它是解决这个问题的非常明显的解决方案。但是,它可能很容易使服务器过载。
编辑简单轮询示例代码:
服务器端:
<?php
//pong.php php isn't my main thing but tried my best!
$obj = new WhatsNew();
$out = "";
if ($obj->getGotNew()){
$types = new array();
foreach ($obj->newStuff() as $type)
{
$new = array('type' => $type);
$types[] = $new;
}
$out = json_encode($types);
}
else{
$out = json_encode(array('nothingNew' => true));
}
客户端:
function ping(){
$.ajax(
{
url : "pong.php",
success : function (data){
data = JSON.parse(data),
if (data['nothingNew'])
return;
for(var i in data){
var type = data[i]['type'];
if (type && incomingDataHandlers[type]){
incomingDataHandlers[type]();
}
}
});
}
incomingDataHandlers = {
comments: function () {
$.ajax({
url: "getComments.php",
method: "GET",
data: getNewCommentRequsetData() // pass data to the server;
success : function (data){
//do something with your new comments
}
});
},
message: function (){
$.ajax({
url: "getMessages.php",
method: "GET",
data: getNewMessageRequestData() // pass data to the server;
success : function (data){
//do something with your new messages
}
});
}
}
$(docment).ready(function () {
setInterval(ping, 1000);
})
答案 1 :(得分:1)
你正在寻找他们称之为“长民意调查”的东西 - 我做了一个“漫长的民意调查php”,我在堆栈溢出时得到了这个帖子:
答案 2 :(得分:0)
你可以将websockets与“flash”websockets结合使用,因为几乎所有浏览器都有闪存(平均约96%?=&gt; http://www.statowl.com/flash.php)=&gt; https://github.com/gimite/web-socket-js。你可以和http://code.google.com/p/phpwebsocket/一起使用它。我仍然想知道表现是否会有任何好处。如果可能的话,我会使用node.js来做反向ajax。 http://socket.io这是一个非常酷的项目!
答案 3 :(得分:0)
您检查过APE吗?
它是一种基于推送的实时数据流技术,通过单个低容量ajax连接。这个概念很有用,您可以使用服务器端实现复制相同的内容