准备工作:所有在线用户保存在application作用域中,注销或关闭浏览器应进行更新
关闭浏览器的执行注销方法:
<script>
window.οnunlοad=onunload_handler;
function onunload_handler(){
window.location="/logout";
}
</script>
(发现只对ie和edge有效,跪了)
页面使用ajax实现异步定时刷新
<script type="text/javascript">
οnlοad=getAjaxContent; //---------------------定时每500毫秒执行一次更新请求
setInterval(getAjaxContent,500);
function getAjaxContent() { //----------------------获取ajax请求的jQuery方法
$.getJSON({
url:'/friends', //-----------------------链接对应方法加上@ResponseBody注解,自动将返回对象转换成json格式
success:function (data) {
//根据data更新页面
$("#friendsList").empty();
for(var d in data){
var $li=$('<li><a href="#" οnclick="setReceiver(this);">'+data[d]+'</a></li>')
$li.appendTo($("#friendsList"));
}
}});
}
function sendChat() { //----------------------点击发送时调用的方法,发送聊天信息(SpringMVC通过@RequestBody注释得到data内容)
$.ajax({
url:'/sendChat',
type:'post',
dataType:'json',
contentType : "application/json;charset=UTF-8",
data:JSON.stringify( //-----------------------接受data的形参加上注解@RequestBody(注意json的属性名和对象的对应属性名相同),@RequestBody只能识别字符串,不能识别json。所以使用JSON.stringify()
{"dialog":$('#dialog').val(),
"receiver":$('#receiver').val(),
"sender":$("#sender").val()}
)
});
}
</script>