比如待办事项、短信、公告等,点击后新开了页面,但回到主页面后,希望刷新下最新数据,一般很多网站都是设定一个定时轮询,比如10秒自动刷一次,但这样效果并不是太好,有时候主页面也会打开无数个,每个都提示,加上声音提示,搞的一片混乱,而且也不能做到及时,服务器压力也非常大。
其实可以用更简单的方式:
//当窗口失去焦点后,再次获取焦点将自动刷新一次,这样可以解决点击待办后,回到此页面要刷新页面的需求
window.onblur=function(){
window.onfocus=function(){
//刷新处理,如window.location.reload();或者ajax请求刷新部分数据
}
}
原理就是,当你打开了子窗口,主窗口会失去焦点,在失去焦点时,加个事件侦听,当再次获取焦点时,就执行刷新动作。
这样比侦听打开子窗口的对象是否存在,或者定时刷新效果都要好,不浪费用户流量也不增加服务器压力。
posted on 2013-05-30 15:40
方伟的博客 阅读(2274)
评论(1) 编辑 收藏 所属分类:
J2EE相关