应用场景
页面定时刷新也是项目中比较常用的需求,如资源在大屏幕展示,要求当数据有变化时,页面会自动刷新,而不需要用户每次都要自己手动刷新一下页面。
实现方法
我们可以书写宏来实现页面在仪表盘自动刷新。
1、在实现页面自动刷新前,需要把页面定时刷新资源对应的查询禁用缓存。在数据集工具栏上点击高级设置按钮,在弹出的对话框中选择禁用缓存。
2、选中页面,右键选择 编辑宏 进入报表宏界面,然后创建一个客户端宏。对象page;事件onRenderPage;代码如下:2000表示2000毫秒。
宏代码
function main(page, pageContext) { setInterval(function() { page.refreshData() }, 2000) }
说明:如果是多个页面都要求定时刷新,可以使用资源包实现。
评论
刘怡霞 发表:
目前遇到一个问题,页面定时刷新,如果切换到浏览器的其他标签页,浏览器的内存就会持续增长,增长到一定程度就会使浏览器崩溃。
建议可以使用以下宏来规避此问题,此宏的作用是,当切换到其他标签页时,页面不刷新:
function main(page, pageContext) {
setInterval(function() {
if(!document.hidden) {
page.refreshData()
}
},
1000*5)
}