tableau extension 调研
概述
最近调研了一下 tableau extensions 的实现,有一些心得,记录下来,供以后开发时参考,相信对其他人也有用。
总的来说,写 tableau extensions 还是挺简单的,只是要熟悉一点 tableau 的业务逻辑。这是我仿照 Image Viewer 插件写的 轮播图插件
参考资料:
extensions-api
extensions-api 文档
原理
tableau extensions 的原理其实就是在 tableau 里面打开一个内嵌网页而已,而在这个网页里面可以接入 tableau 的 sdk 来和 tableau dashboard 进行数据交互。
需要注意的是:
- 内嵌网页的内核是 chrome。
- tableau extensions 只能在 tableau 的仪表盘里面运行。
- 由于插件其实是一个内嵌网页,所以在插件里面你可以使用任何库,包括 jquery,vue,react 等等。
可以做哪些事
由于 tableau extensions 可以使用 sdk 和 tableau 进行数据的双向流动,所以它非常灵活,可以做这些事情:
- 能够获取 tableau dashboard 的数据
- 能够操作 tableau dashboard 的数据
- 能够监听关于数据的操作事件,然后做出一些响应。(所以能够和 tableau dashboard 的其它模块的一些操作进行联动)
- 能够打开 tableau dashboard 的配置框,让用户给自己手动进行一些配置。
基本结构
插件的基本结构如下(以我开发的轮播图插件为例):
- ImageSwiper.trex
- imageswiper.css
- imageswiper.html
- imageswiper.js
- imageswiperDialog.html
- imageswiperDialog.js
插件的加载过程如下:
- 安装插件: 引入配置文件 ImageSwiper.trex
- 在 ImageSwiper.trex 文件中有 imageswiper.html 的加载地址,tableau 会利用这个地址加载 imageswiper.html
- imageswiper.html 会加载 imageswiper.css 和 imageswiper.js
- 如果有配置 tableau 的配置框的话,在 imageswiper.js 里面会引入 imageswiperDialog.html 的地址,然后 tableau 根据这个地址加载配置框 imageswiperDialog.html
- imageswiperDialog.html 会加载 imageswiperDialog.js
所以要查看其它 tableau extensions 的源码是很简单的,只需要在 trex 配置文件里面查看插件 html 的地址,然后一步步去看源码就可以了。
调试
我当时是在 tableau desktop 上面写插件的,这样就看不到插件打印出来的内容,所以当时调试得非常困难。
等我写完插件才发现,可以直接使用 chrome 来进行调试。这是文档,这是chrome插件下载地址。
tableau extension 调研的更多相关文章
- RESTful框架调研
背景 当前的开放服务平台发展趋势,是服务使用者变得多种多样,其中既有各种前端设备(台式机.手机等),又有各种后端服务器,因此必须有一个统一的机制,方便各种服务使用者和开放服务平台进行通信.为了更好的实 ...
- SSL加速卡调研的原因及背景
SSL加速卡调研的原因及背景 SSL加速卡调研的原因及背景 网络信息安全已经成为电子商务和网络信息业发展的一个瓶颈,安全套接层(SSL)协议能较好地解决安全处理问题,而SSL加速器有效地提高了网络安全 ...
- BugPhobia沟通篇章:Solr模式配置与数据导入调研
0x01 :Scrum Meeting特别说明 特别说明,考虑到编译原理课程考核的时间安排,每天开发时间急剧缩短以至于难以维系正常的Scrum Meeting,因此,将2015/12/13 00:00 ...
- IDE调研之二
Eclipse和Jetbrains的IntelliJ IDEA对比: Eclipse工具 在Eclipse中,可以最大化控制台.通过双击标签或者Ctrl+M快捷键就可以实现,但是在IntelliJ I ...
- Apache Drill 调研学习
Apache Drill 调研学习 ## 一.Drill概述 在大数据时代,对于Hadoop中的信息,越来越多的用户需要能够获得快速且互动的分析方法.大数据面临的一个很大的问题是大多数分析查询都很缓慢 ...
- Tableau学习Step4一数据解释、异常值监测、参数使用、分析结果如何对外发布
Tableau学习Step4一数据解释.异常值监测.参数使用.分析结果如何对外发布 本文首发于博客冰山一树Sankey,去博客浏览效果更好. 一. 前言 本教程通过一个案例从浅到深来学习Tableau ...
- CMS模板应用调研问卷
截止目前,已经有数十家网站与我们合作,进行了MIP化改造,在搜索结果页也能看到"闪电标"的出现.除了改造方面的问题,MIP项目组被问到最多的就是:我用了wordpress,我用了织 ...
- Tableau未必最佳,国内BI也能突破重围!
如今,百度一下商业智能或BI工具,总能看到Tableau的身影.并不是Tableau的营销做得好,而是国内对于商业智能工具的认知和选择似乎都落在了Tableau身上.导致不管业内业外都对商业智能的概念 ...
- Windbg Extension NetExt 使用指南 【2】 ---- NetExt 的基本命令介绍
摘要 : 本章节介绍NetExt常用的命令. 并且对SOS进行一些对比. NetExt的帮助 要想玩好NetExt, 入门就得看帮助. 看NetExt的帮助可以调用!whelp 命令. 这样hi列举出 ...
随机推荐
- 根文件系统ramdisk.image.gz && uramdisk.image.gz
1. 根文件系统镜像ramdisk.image.gz和uramdisk.image.gz 通常需要将文件系统输入到Nand Flash当中时,一般可以将根文件系统打包成uramdisk.image.g ...
- centos7中的网卡名称相关知识
转载自https://www.cnblogs.com/zyd112/p/8143464.html 一致性网络设备命名(Consistent Network Device Naming) 背景介绍: 在 ...
- 8.8.ZooKeeper 原理和选举机制
1.ZooKeeper原理 Zookeeper虽然在配置文件中并没有指定master和slave但是,zookeeper工作时,是有一个节点为leader,其他则为follower,Leader是通 ...
- Laravel技巧集锦(16):使用DB::listen查找慢SQL
1.AppServiceProvider.php中 \DB::listen(function ($query){ $sql = $query->sql; $bindings = $query-& ...
- Win7 右键 新建图标消失的解决办法
方法一: 把下面一段代码存在一个记事本上,再选择另存为1.cmd,最后运行! regsvr32 /u /s igfxpph.dll reg delete HKEY_CLASSES_ROOT\Direc ...
- 多个Promise执行顺序
app.isLogin() // 判断是否登录后 .then(res=>{ this.setData({ login: true }, res2=>{ // 清空临时积分 return a ...
- Hadoop-No.13之数据源系统以及数据结构
文件系统中采集数据时,应该考虑以下内容. 数据源系统设备的读取速率 在所有处理流水线中,磁盘I/O通常都是主要瓶颈.但是优化采集流程时通常要看一下检索数据的系统系统.一般来说,Hadoop的读取速度在 ...
- Http中的三种请求处理模式(MPM)的区别
MPM---包括基于事件/异步,线程化和预分叉 MPM(multi-processing module)多种请求处理模式,分为三种工作模式: prefork worker event prefork- ...
- Laravel dingo,HTTP的请求头(accept)无法携带版本号的解决方法
Laravel dingo,HTTP的请求头(accept)无法携带版本号的解决方法 2017年9月6日 原创分享 zencodex 使用 Laravel dingo 做api开发时,涉及 A ...
- SDOI2015 寻宝游戏 | noi.ac#460 tree
题目链接:戳我 可以知道,我们相当于是把有宝藏在的地方围了一个圈,求这个圈最小是多大. 显然按照dfs序来遍历是最小的. 那么我们就先来一遍dfs序列,并且预处理出来每个点到根的距离(这样我们就可用\ ...