Ajax轮询复用模型(二)
省略,返回信息格式如下*/
$data['status'] = '获取信息状态';
$data['data'] = '信息详情';
return $data;
}
/**
* 获取最新说说
*/
public function getNewfeed()
{
/*获取消息过程省略,返回信息格式如下*/
$data['status'] = '获取信息状态';
$data['data'] = '信息详情';
return $data;
}
}
基实本模型的关键在于各消息的分类收集,及返回消息之后的分配处理,即代码中以下两个部分
//客户端:将取回的结果分配给对应的处理程序
HandleRes: function (res) {
for (x in res) {
eva l('rtmsg.Handle' + x + '(res[x])');
}
}
//服务器端:逐项收集信息
foreach ($items as $v) {
$rt[$v] = call_user_func(array(&$this, 'get' . $v));
}
至此Ajax轮询复用模型就建好了,技术没什么技术,关键是巧合,最后总结一下这种模型的优缺点。
优点:避免了客户端多个轮询点造成的服务器资源及宽带浪费,可以动态更改需要获取的消息项,便于管理。
缺点:没有办法为每个需要轮询的点分配独立的请求频率,一般情况下无所谓啦,如果是在长轮询中使用该缺点不复存在。