我在这里做错了什么? URL 并未按预期每 5 秒切换一次。我是否错误地使用了 setInterval 函数?
我正在尝试使用 JS API 从服务器中提取 Tableau 可视化。
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;}
}
}
最佳答案
动态加载的 Tableau 文档显示,在加载另一个可视化之前必须销毁渲染的可视化元素。这可能是 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
设置为全局变量来跟踪它。
关于javascript - Javascript Tableau API - 动态可视化加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59432097/