提升Tableau Server视图加载体验:JS实现进度条

版权申诉
0 下载量 82 浏览量 更新于2024-08-06 收藏 3KB TXT 举报
在Tableau Server中,为了提供更清晰的用户体验,特别是在大数据或复杂视图加载时,设置视图加载进度显示是非常有用的。这个JS源代码片段主要涉及使用自定义的脏检查机制来监控页面的变化,并实时更新加载进度。以下是对这段代码的详细解析: 首先,代码引入了一个名为`var_dirty`的函数,它利用了浏览器的`requestAnimationFrame`或`setTimeout`方法进行周期性调用(脏检查),确保每当页面内容有更新时,就会执行指定的函数`F`。这里的`EXPIRE`参数用于设定检查的频率,如果设置了时间限制,会在指定时间后自动触发检查。 `clickTab_`函数是关键部分,当用户点击Tableau Server中的视图选项卡时,会开始监听点击事件。通过获取窗口的外边距宽度(`totalWidth`)和一个计数器`index`,每次点击事件触发时,计数器会递增,并计算当前加载进度百分比。`loadText`变量用于获取并更新加载进度的UI元素,通常是轮播加载指示器的CSS样式,将`index`与总宽度比较,从而动态改变加载进度的表示。 值得注意的是,这段代码使用了jQuery库,因为可以看到`.dijitTabContainerTop-tabs`和`.dijitTab`的选择器。这表明它可能是在Dijit UI框架中集成的,Dijit是Tableau Server中的一种前端组件集。 通过这种方式,开发人员可以避免默认的圆形加载进度图标难以判断是用户设备性能问题还是报表加载问题,提供了一种更加直观的加载进度反馈。然而,实际应用时,可能还需要根据具体需求对代码进行调整,比如添加错误处理、状态管理以及更加精细的动画效果。 总结来说,这段JS源代码的核心是利用脏检查实现Tableau Server视图加载进度的动态显示,提升了用户体验。通过计数器和窗口尺寸的比较,开发者可以根据用户的交互实时更新加载进度,这对于大型数据集或者复杂的仪表板加载场景尤其有用。