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列举出 ...
随机推荐
- -sh: ./a.out: not found
感觉程序没有问题,编译生成a.out后,拷贝到开发板执行,提示 -sh: ./a.out: not found. 上网查找问题,大概原因有2个 一就是有可能/lib下面没有C库 就是没有glibc或者 ...
- NORDIC GATT事件
假设有两个服务,每个服务注册相应事件 注册的事件为ble_dev_cfg_on_ble_evt.ble_lora_cfg_on_ble_evt 当在任何一个服务中发生GATT特征读或写的时候,注册的这 ...
- qunee 缩略图
<!DOCTYPE html> <html> <head> <title>Hello Qunee for HTML5</title> < ...
- 5.Shell 流程控制语句
1.流程控制语句 通过if.for.while.case这4种流程控制语句来学习编写难度更大.功能更强的Shell脚本 4.3.1 if条件测试语句: if条件测试语句可以让脚本根据实际情况自动执行相 ...
- 基于partition的递归
partition算法可以应用在快速排序算法中,也可以应用到 Selection algorithm(在无序数组中寻找第K大的值) Partition 实现 快速排序中用到的 partition 算法 ...
- 数据结构---->数组
1.什么是数组? 数组是一种线性的数据结构.它同一组连续的内存空间,来存储一组具有相同类型的数据. 简单说明几点: (1).线性表:就是数据排成像一条线一样的结构.每个线性表的数据最多只有前和后两个方 ...
- Ubuntu 18.04 启动太慢不能忍
检查谁在搞鬼 $ systemd-analyze blame 结果 39.828s plymouth-quit-wait.service 39.311s apt-daily.service 30.93 ...
- KNN分类算法
K邻近算法.K最近邻算法.KNN算法(k-Nearest Neighbour algorithm):是数据挖掘分类技术中最简单的方法之一 KNN的工作原理 所谓K最近邻,就是k个最近的邻居的意思,说的 ...
- Solr——Java应用
Solr有一个客户端SolrJ 创建一个Java Project 引入Jar包 添加test类 package com.solr.test; import java.io.IOException; i ...
- HTTP协议几个版本的理解
HTTP (HyperText transfer protocol) 超文本传输协议 Http是一个应用层协议,基于TCP协议(传输层)之上,规定WWW服务器 浏览器之间信息传递规范.使用的默认端口号 ...