准备工作:所有在线用户保存在application作用域中,注销或关闭浏览器应进行更新
关闭浏览器的执行注销方法:
<script>
window.onunload=onunload_handler;
function onunload_handler(){
window.location="/logout";
}
</script>
(发现只对ie和edge有效,跪了)
页面使用ajax实现异步定时刷新
<script type="text/javascript">
onload=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="#" onclick="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>