彩票走势图

BI工具 Qlik 教程:嵌入式可视化生命周期-从Viz API到nebula.js

翻译|使用教程|编辑:况鱼杰|2021-03-16 11:15:48.793|阅读 117 次

概述:​让我们看一下Visualization API和nebula.js当前的可视化生命周期(创建/更新/销毁可视化)之间的比较。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

Qlik连续10年成为Gartner“分析与商业智能平台”魔力象限领先者象限,成为企业商业智能和个人职场成功的必然选择。Qlik Sense是一个完整的数据分析平台,为新一代分析奠定了基准。凭借其独一无二的关联分析引擎,完善的AI和高性能云平台,您可以使组织中的每个人每天都能做出更好的决策,从而创建真正的数据驱动型企业。

视频资源                            免费试用


让我们看一下Visualization API和nebula.js当前的可视化生命周期(创建/更新/销毁可视化)之间的比较。

创建

Visualization API和nebula.js都能够渲染现有对象并实时创建可视化。用于呈现现有对象的Visualization API方法以其get方法开始,该方法返回QVisualization类的实例。然后,使用QVisualization类的show方法来呈现可视化效果。使用Visualization API动态创建可视化过程始于create方法,该方法与get方法一样,返回QVisualization类的实例。 再次使用show方法来呈现可视化效果。他们看起来像这样。

// The Capability APIs resources must first be loaded

// Get an existing object and render it with the Visualization API
qlik.app.visualization.get(objectId).then(function(vis) { 
  vis.show('elementId'); 
});

// Create a visualization on-the-fly with the Visualization API
qlik.app.visualization.create(type, cols, options).then(function(vis) { 
  vis.show('elementId'); 
});
nebula.js还能够渲染现有对象并即时创建可视化效果。使用nebula.js,您首先要创建一个嵌入实例,然后使用该嵌入实例的render函数来完成这两个任务。他们看起来像这样。

import { embed } from '@nebula.js/stardust';

// Create an embed instance with nebula.js
const n = embed(app);

// Render an existing object with nebula.js
n.render({
  element: el,
  id: 'abcdef'
});

// Render an object on-the-fly with nebula.js
n.render({
  element: el,
  type: 'barchart',
  fields: ['Product', { qLibraryId: 'u378hn', type: 'measure' }]
});
nebula.js的优点是不必为Capability API(包括require.js,jquery,Angular.js和CSS代码)加载资源。但是nebula.js可能还不支持所有图表。 您可以在nebula.js中检查当前支持的图表列表。

更新中

到目前为止,Visualization API和nebula.js之间的当前功能彼此之间有些不同。尽管可视化API可视化具有可用的setOptions方法,该方法允许修补基础超多维数据集并更改现有可视化的各种选项,但无法将其更改为其他类型的可视化。相反,尽管nebula.js当前没有支持打补丁底层超立方体的方法,但可以使用实验的convertTo方法来更改可视化的类型。 让我们看一下两者的一个例子。

// Set new options with the Visualization API
app.visualization.get('xGhjKl').then(function(vis){
  vis.setOptions({title:"Now improved"});
});

// Convert to a different type of visualization with nebula.js
(async () => {
  const viz = await embed(app).render({
    element,
    id: 'abc'
  });
  viz.convertTo('table');
})();
请注意,这里在Visualization API示例中使用了Promise链,但使用nebula.js进行了async / await。除了使用Capability API时,没有任何区别的原因,它倾向于在较早的项目中使用诺言链作为与promises一起使用的模式,而倾向于在较新的项目中使用nebula.js时,最好选async / await。

破坏

无论是嵌入现有的可视化效果还是动态创建可视化效果,Visualization API和nebula.js都将创建一个新的Qlik会话对象。而且,尤其是在较大的应用程序中,如果不清理,最终将导致大量会话对象,并且性能会受到影响。因此,当您不再需要呈现可视化效果时,无论是使用Visualization API还是nebula.js,都应该销毁它。如果随后需要渲染,则可以再次渲染。可视化API使用close方法,nebula.js使用恰当命名的destroy方法破坏可视化。让我们看一下使用Visualization API和nebula.js破坏可视化的方法。

// Close a visualization with the Visualization API
var visRef;
app.visualization.get('xGhjKl').then(function(vis){
  visRef = vis;
  vis.setOptions({title:"Now improved"});
});
if (visRef) { visRef.close(); }

// Destroy a visualization with nebula.js
(async () => {
  const viz = await embed(app).render({
    element,
    id: 'abc'
  });
  viz.destroy();
})();
再次注意,两个示例之间如何处理承诺。


Qlik是一家私有SaaS公司,提供端到端实时数据集成和分析云平台,以缩小数据,洞察力和行动之间的差距。通过将数据转换为Active Intelligence,企业可以制定更好的决策,提高收入和盈利能力并优化客户关系。Qlik在100多个国家/地区开展业务,为全球50,000多个客户提供服务。

作为Qlik官方的中国合作伙伴,我们为Qlik的中国用户提供产品授权与实施、定制分析方案、技术培训等服务,旨在让中国企业的每个Qlik用户都能探索出数据的价值,让企业形成分析文化。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP