概述

最近调研了一下 tableau extensions 的实现,有一些心得,记录下来,供以后开发时参考,相信对其他人也有用。

总的来说,写 tableau extensions 还是挺简单的,只是要熟悉一点 tableau 的业务逻辑。这是我仿照 Image Viewer 插件写的 轮播图插件

参考资料:

extensions-api

extensions-api 文档

原理

tableau extensions 的原理其实就是在 tableau 里面打开一个内嵌网页而已,而在这个网页里面可以接入 tableau 的 sdk 来和 tableau dashboard 进行数据交互。

需要注意的是:

  1. 内嵌网页的内核是 chrome。
  2. tableau extensions 只能在 tableau 的仪表盘里面运行。
  3. 由于插件其实是一个内嵌网页,所以在插件里面你可以使用任何库,包括 jquery,vue,react 等等。

可以做哪些事

由于 tableau extensions 可以使用 sdk 和 tableau 进行数据的双向流动,所以它非常灵活,可以做这些事情:

  1. 能够获取 tableau dashboard 的数据
  2. 能够操作 tableau dashboard 的数据
  3. 能够监听关于数据的操作事件,然后做出一些响应。(所以能够和 tableau dashboard 的其它模块的一些操作进行联动)
  4. 能够打开 tableau dashboard 的配置框,让用户给自己手动进行一些配置。

基本结构

插件的基本结构如下(以我开发的轮播图插件为例):

- ImageSwiper.trex
- imageswiper.css
- imageswiper.html
- imageswiper.js
- imageswiperDialog.html
- imageswiperDialog.js

插件的加载过程如下:

  1. 安装插件: 引入配置文件 ImageSwiper.trex
  2. 在 ImageSwiper.trex 文件中有 imageswiper.html 的加载地址,tableau 会利用这个地址加载 imageswiper.html
  3. imageswiper.html 会加载 imageswiper.css 和 imageswiper.js
  4. 如果有配置 tableau 的配置框的话,在 imageswiper.js 里面会引入 imageswiperDialog.html 的地址,然后 tableau 根据这个地址加载配置框 imageswiperDialog.html
  5. imageswiperDialog.html 会加载 imageswiperDialog.js

所以要查看其它 tableau extensions 的源码是很简单的,只需要在 trex 配置文件里面查看插件 html 的地址,然后一步步去看源码就可以了。

调试

我当时是在 tableau desktop 上面写插件的,这样就看不到插件打印出来的内容,所以当时调试得非常困难。

等我写完插件才发现,可以直接使用 chrome 来进行调试。这是文档,这是chrome插件下载地址。

tableau extension 调研的更多相关文章

  1. RESTful框架调研

    背景 当前的开放服务平台发展趋势,是服务使用者变得多种多样,其中既有各种前端设备(台式机.手机等),又有各种后端服务器,因此必须有一个统一的机制,方便各种服务使用者和开放服务平台进行通信.为了更好的实 ...

  2. SSL加速卡调研的原因及背景

    SSL加速卡调研的原因及背景 SSL加速卡调研的原因及背景 网络信息安全已经成为电子商务和网络信息业发展的一个瓶颈,安全套接层(SSL)协议能较好地解决安全处理问题,而SSL加速器有效地提高了网络安全 ...

  3. BugPhobia沟通篇章:Solr模式配置与数据导入调研

    0x01 :Scrum Meeting特别说明 特别说明,考虑到编译原理课程考核的时间安排,每天开发时间急剧缩短以至于难以维系正常的Scrum Meeting,因此,将2015/12/13 00:00 ...

  4. IDE调研之二

    Eclipse和Jetbrains的IntelliJ IDEA对比: Eclipse工具 在Eclipse中,可以最大化控制台.通过双击标签或者Ctrl+M快捷键就可以实现,但是在IntelliJ I ...

  5. Apache Drill 调研学习

    Apache Drill 调研学习 ## 一.Drill概述 在大数据时代,对于Hadoop中的信息,越来越多的用户需要能够获得快速且互动的分析方法.大数据面临的一个很大的问题是大多数分析查询都很缓慢 ...

  6. Tableau学习Step4一数据解释、异常值监测、参数使用、分析结果如何对外发布

    Tableau学习Step4一数据解释.异常值监测.参数使用.分析结果如何对外发布 本文首发于博客冰山一树Sankey,去博客浏览效果更好. 一. 前言 本教程通过一个案例从浅到深来学习Tableau ...

  7. CMS模板应用调研问卷

    截止目前,已经有数十家网站与我们合作,进行了MIP化改造,在搜索结果页也能看到"闪电标"的出现.除了改造方面的问题,MIP项目组被问到最多的就是:我用了wordpress,我用了织 ...

  8. Tableau未必最佳,国内BI也能突破重围!

    如今,百度一下商业智能或BI工具,总能看到Tableau的身影.并不是Tableau的营销做得好,而是国内对于商业智能工具的认知和选择似乎都落在了Tableau身上.导致不管业内业外都对商业智能的概念 ...

  9. Windbg Extension NetExt 使用指南 【2】 ---- NetExt 的基本命令介绍

    摘要 : 本章节介绍NetExt常用的命令. 并且对SOS进行一些对比. NetExt的帮助 要想玩好NetExt, 入门就得看帮助. 看NetExt的帮助可以调用!whelp 命令. 这样hi列举出 ...

随机推荐

  1. 上班时能不能戴耳机?V

    上班时能不能戴耳机? 新入职一公司, 上班时间不能戴耳机在V站一石激起千层浪,网友意见主要分几派: 甩手走人型: 神经病公司,这还不赶紧走 不走等着过年 不走留着转正 离职,下一题 还是赶紧离职吧 这 ...

  2. 03:Java基础语法(二)

    Java基础语法 Java运算符 算术运算符 运算符是一种特殊的符号,用以表示数据的运算.赋值和比较等.1.操作数:参与运算的数据 称为操作数.2.表达式:运算符和操作数的整体 称为表达式.单独的一个 ...

  3. 【转】通过lombok带你读透Builder构建器

    原地址:https://www.jianshu.com/p/0d8fc3df3647?from=timeline&isappinstalled=0 很久之前,我在<effective j ...

  4. three.js之创建坐标系网格

    <!DOCTYPE html> <html> <head> <meta charset=utf-8> <title>My first thr ...

  5. 执行sudo pip3 ...报错 Traceback (most recent call last): File "/usr/bin/pip3", line 9, in <module> from pip import main ImportError: cannot import name 'main'

    对于普通pip,把pip3改成pip即可,其他的修改一样 1.执行命令 sudo gedit /usr/bin/pip3 2.改成下面的形式 from pip import __main__ # 需要 ...

  6. unittest 详解

      内容总括 一. 初始化 setUp 与 tearDown setUpClass 与 tearDownClass unittest.main(verbosity=0/1/2) 二. 执行顺序 按顺序 ...

  7. 测试工具jmeter

    测试工具jmeter http:压力测试 https://www.cnblogs.com/stulzq/p/8971531.html

  8. Windows下Redis如何永久更改密码

    公司使用的是Spring-session-redis 需要给Redis配置一个密码 本来我配置密码的方法是 先打开Redis服务 在采用 命令 CONFIG SET requirepass " ...

  9. postConstruct执行过程

    使用@PostConstruct注解修饰的方法会在服务器加载Servlet时运行,并且只会执行一次,在构造函数之后,在init方法之前执行: 执行的顺序一次是:构造函数-->autowired依 ...

  10. IDEA中使用Sqlite3

    去maven下载驱动包 ( jar包 )  下载地址:http://mvnrepository.com/artifact/org.xerial/sqlite-jdbc/3.23.1 打开IDEA 创建 ...