如何让一个会话刷新另一个会话?假设我们有智能手机、服务器和笔记本电脑。笔记本电脑与服务器有当前会话,然后智能手机向服务器执行 HTTP POST,现在我们希望此事件触发笔记本电脑会话的刷新。
问问题
191 次
1 回答
0
您的问题不太清楚您的问题的具体情况,但假设您在手机和笔记本电脑上以用户 X 的身份登录(并且您的用户实体有一个获取每次更新时间戳的字段,例如:updated_at),以及手机例如,更改用户地址,您可以使用 ajax 通过执行以下操作在笔记本电脑上获取该事件:
class SomeController extends Controller {
//...
/**
* checks if entity was updated since
*
* @Route("/check/{id}/{tstamp}", name="entity_check")
* @Template()
*/
public function checkAction($id, $tstamp) {
//check if anything updated by comparing entity's updated_at against $tstamp
//...
//as the user locale may differ from server's, send back the timestamp too
$data['last_update'] = time();
return new Response(json_encode($data));
}
}
和树枝文件的javascript:
<script>
var last_check = {{ "now"|date("t") }};
setInterval(function() {
$.ajax( "{{ url('route_to_your_check_action', {'id': entity.id, 'last_check':''}) }}/" + last_check )
.done(function(data) {
var info = $.parseJSON(data);
last_check = info.last_update;
//if anything changed refresh on user side
})
.fail(function() { //on error do something if needed
});
}
, 12000); // make this call every 12 seconds
</script>
希望能帮助到你。
于 2013-02-22T16:14:12.657 回答