【问题标题】:Java Script Tableau API - Dynamic viz loadJavascript Tableau API - 动态即加载
【发布时间】:2019-12-21 09:40:15
【问题描述】:

我在这里做错了什么? URL 不会按预期每 5 秒切换一次。我是否错误地使用了 setInterval 函数?

我正在尝试使用 JS API 从服务器中提取 Tableau viz。

        var vizs = Array ();
        var x=0;

        window.onload=function()  //let html load first
        {   

                vizs[0] = 'url1_dummy';
                vizs[1] = 'url2_dummy';             

                var myVar = setInterval(() => changeViz(), 5000);

                var options = 
                {
                    width: '1800px',
                    height: '800px',
                    hideToolbar: true,
                    hideTabs: true
                }

        function changeViz()
            {
                var vizContainer = document.getElementById('viz')
                var viz = new tableau.Viz(vizContainer,vizs[x], options);  

                    if(x < vizs.length - 1){ x++; } else { x = 0;}
                }


        }

【问题讨论】:

  • x的初始设置在哪里?
  • 请考虑更改标题以更好地反映问题。此外,包含更多代码也会很有用,这样任何人都可以看到它是如何实际执行的。
  • @PatrickEvans:我更新了代码以显示完整的 .js 文件
  • @edgars 我也更新了标题,是不是更好?
  • 是的,但似乎添加 Tableu api 会更好:) 谢谢。

标签: javascript api tableau-api


【解决方案1】:

动态加载的 Tableau 文档显示,必须在加载另一个可视化之前销毁呈现的 viz 元素。这可能是 Tableau API 的特性。 https://help.tableau.com/current/api/js_api/en-us/JavaScriptAPI/js_api_sample_dynamic_load.htm

if (viz) { // If a viz object exists, delete it.
     viz.dispose();
}
var vizURL = vizList[vizCount];
viz = new tableau.Viz(vizDiv, vizURL, options);

这也意味着您应该通过将viz 设为全局变量来跟踪它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 2018-10-11
    • 2012-12-01
    • 1970-01-01
    • 2011-12-12
    • 2011-08-15
    相关资源
    最近更新 更多