翻譯|使用教程|編輯:況魚杰|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@fc6vip.cn
文章轉載自: