概述

最近调研了一下 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. FASTCGI/CGI

    在了解这两个协议之前,我们先谈一下动态网页 动态网页 是指跟静态网页相对的一种网页编程技术.静态网页,随着html代码的生成,页面的内容和显示效果就基本上不会发生变化了--除非你修改页面代码.而动态网 ...

  2. 论文笔记:Integrated Object Detection and Tracking with Tracklet-Conditioned Detection

    概要 JiFeng老师CVPR2019的另一篇大作,真正地把检测和跟踪做到了一起,之前的一篇大作FGFA首次构建了一个非常干净的视频目标检测框架,但是没有实现帧间box的关联,也就是说没有实现跟踪.而 ...

  3. php的lareval框架配置出错

    前两天,在学习php的 lareval 框架时,从官网上下载完lareval的安装包后,按照网上的配置教程一点一点的配置完后,当点击public 文件运行时就出现一个让我很头痛的问题,我自己外加两个大 ...

  4. sql 181. 超过经理收入的员工

    Employee 表包含所有员工,他们的经理也属于员工.每个员工都有一个 Id,此外还有一列对应员工的经理的 Id. +----+-------+--------+-----------+| Id | ...

  5. SpringMVC配置文件详解:<context:annotation-config/>和<context:component-scan base-package=""/>和<mvc:annotation-driven />

    原文地址:https://www.cnblogs.com/lcngu/p/5080702.html Spring配置文件详解:<context:annotation-config/>和&l ...

  6. Java WEB框架——SSM之Hello world

    一.建立项目 先搭建一个webapp项目(要选creat from arctype) 起名 选择maven路径,settings.xml那里要选择override才可以在资源管理器中浏览.接下来直接N ...

  7. itop4412编译内核时出现“recipe for target 'arch/arm/mach-exynos/cpu-exynos4.o' failed”的解决方法

    依次执行如下命令 #su root 输入root用户密码 #cd #vim .bashrc 到达最底行,确保环境变量如下图所示 保存退出后,执行如下指令 #source .bashrc 重启Termi ...

  8. [Angular 8] Take away: Web Components with Angular Elements: Beyond the Basics

    This post is based on the NG-CONF talk, check the talk by yourself. 1. Dynamiclly add Angular Elemen ...

  9. html5原生js拖拽上传(golang版)

    一次只能传一个文件,需在main.go同级目录中建一个upload文件夹 main.go package main import ( "fmt" "io" &q ...

  10. 【IOI2018】机械娃娃

    看到的时候感到很不可做,因为所有的开关都要状态归零.因此可以得到两分的好成绩. --然后 yhx-12243 说:这不是线段树优化建图吗? 于是我获得了启发,会做了-- 还不是和上次一样,通过提示做出 ...