<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Qliksense API - parallel asynchrounous data fetching using Promises in Integration, Extension &amp; APIs</title>
    <link>https://community.qlik.com/t5/Integration-Extension-APIs/Qliksense-API-parallel-asynchrounous-data-fetching-using/m-p/1230792#M6482</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;None of Qlik's visualization fetches all of the data up-front but instead pages in additional data as needed when you scroll of zoom in different objects.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sending that much data over the wire is probably kinda slow, you probably want to implement some kind of gradual rendering of whatever you are doing. A lot of the metadata is already provided up-front for you to calculate min/max and labels.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 12 Dec 2016 20:09:49 GMT</pubDate>
    <dc:creator>Alexander_Thor</dc:creator>
    <dc:date>2016-12-12T20:09:49Z</dc:date>
    <item>
      <title>Qliksense API - parallel asynchrounous data fetching using Promises</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Qliksense-API-parallel-asynchrounous-data-fetching-using/m-p/1230788#M6478</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;we have developed an extension and we have noticed that the extension are pretty slow during the data process fetching. &lt;BR /&gt;We implemented a sequential data fetching process which takes approximately 20 seconds for fetching 60.000 rows (3 columns = 2 dimension + 1 measure). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I was wondering if there is the possibility to use an asynchonous parallel data fetching mechanismus using promises using the backendapi from qlik. &lt;BR /&gt;When I execute the code it raises always an exception when trying to load multiple requests at the same time, works fine when it is limited to 1 or 2.&amp;nbsp; Is this is a bug or it is simple not allowed to do it by the Qlik Engine?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any idea or hint would be very much appreciated &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt; !&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="javascript" __jive_macro_name="code" class="jive_macro_code jive_text_macro _jivemacro_uid_14812077118944200" jivemacro_uid="_14812077118944200" modifiedtitle="true"&gt;
&lt;P&gt; function fetchData() {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var columns = config.DATA_PER_ROW;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var totalheight = rowCount; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var pageheight = Math.floor(10000 / columns);&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var numberOfPages = Math.ceil(totalheight / pageheight);&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var qTotalData = [];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var deferred = $.Deferred()&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var promises = Array.apply(null, Array(numberOfPages)).map(function(data, index) {&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return backendApi.getData([{&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; qTop: (pageheight * index) + index,&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; qLeft: 0,&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; qWidth: columns,&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; qHeight: pageheight,&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; index: index&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }]); &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }, this);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Promise.all(promises).then(function(data) {&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var qsData = data[0];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (var j=0; j&amp;lt;qsData.length; j++) {&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (var k=0; k&amp;lt;qsData&lt;J&gt;.qMatrix.length; k++) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/J&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; qTotalData.push(qsData&lt;J&gt;.qMatrix&lt;K&gt;)&amp;nbsp; &lt;/K&gt;&lt;/J&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log(qTotalData);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deferred.resolve(qTotalData); &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }).catch(function(error) { console.log(error)});&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;&lt;BR /&gt;The code raises a general exception (undefined) :-/.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers,&lt;/P&gt;&lt;P&gt;Patric&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Dec 2016 14:39:02 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Qliksense-API-parallel-asynchrounous-data-fetching-using/m-p/1230788#M6478</guid>
      <dc:creator>pamaxeed</dc:creator>
      <dc:date>2016-12-08T14:39:02Z</dc:date>
    </item>
    <item>
      <title>Re: Qliksense API - parallel asynchrounous data fetching using Promises</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Qliksense-API-parallel-asynchrounous-data-fetching-using/m-p/1230789#M6479</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;STRONG&gt;For all who are interested in:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;It seems that the getData() Method from the backendApi has a bug. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;I have used the model object instead and the getHyperCubeData method.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="javascript" __jive_macro_name="code" class="jive_macro_code jive_text_macro _jivemacro_uid_14812113887158806" jivemacro_uid="_14812113887158806" modifiedtitle="true"&gt;
&lt;P style="font-size: 13.3333px;"&gt; var promises = Array.apply(null, Array(numberOfPages)).map(function(data, index) {&amp;nbsp; &lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&lt;SPAN style="font-size: 13.3333px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&lt;SPAN style="font-size: 13.3333px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var page = {&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; qTop: (pageheight * index) + index,&amp;nbsp; &lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; qLeft: 0,&amp;nbsp; &lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; qWidth: columns,&amp;nbsp; &lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; qHeight: pageheight,&amp;nbsp; &lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; index: index&amp;nbsp; &lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return model.getHyperCubeData('/qHyperCubeDef', [page]);&amp;nbsp; &lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }, this);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Promise.all(promises).then(function(data) {&amp;nbsp; &lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log(data);&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (var j=0; j&amp;lt;data.length; j++) {&amp;nbsp; &lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (var k=0; k&amp;lt;data&lt;J&gt;.qDataPages[0].qMatrix.length; k++) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/J&gt;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; qTotalData.push(data&lt;J&gt;.qDataPages[0].qMatrix&lt;K&gt;)&amp;nbsp; &lt;/K&gt;&lt;/J&gt;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers,&lt;BR /&gt;Patric&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Dec 2016 15:37:46 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Qliksense-API-parallel-asynchrounous-data-fetching-using/m-p/1230789#M6479</guid>
      <dc:creator>pamaxeed</dc:creator>
      <dc:date>2016-12-08T15:37:46Z</dc:date>
    </item>
    <item>
      <title>Re: Qliksense API - parallel asynchrounous data fetching using Promises</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Qliksense-API-parallel-asynchrounous-data-fetching-using/m-p/1230790#M6480</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Ye it's a tricky one, in the deep internals there is some websocket throttling and also some internal caching of data that happens when you use the backendApi that is not able to keep up when requesting a large number of data pages in parallel fashion.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When you are using the the method on the model directly then you are bypassing that and sub-sequentially the backendApi might be a bit wonky to rely on.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You could turn of the caching mechanism, it's not supported but seems to work fine&lt;/P&gt;&lt;P&gt;Here is an example &lt;A href="https://github.com/mindspank/GoogleMaps-Sense/blob/master/GoogleMaps-Sense.js#L57" title="https://github.com/mindspank/GoogleMaps-Sense/blob/master/GoogleMaps-Sense.js#L57"&gt;GoogleMaps-Sense/GoogleMaps-Sense.js at master · mindspank/GoogleMaps-Sense · GitHub&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Dec 2016 15:53:28 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Qliksense-API-parallel-asynchrounous-data-fetching-using/m-p/1230790#M6480</guid>
      <dc:creator>Alexander_Thor</dc:creator>
      <dc:date>2016-12-08T15:53:28Z</dc:date>
    </item>
    <item>
      <title>Re: Qliksense API - parallel asynchrounous data fetching using Promises</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Qliksense-API-parallel-asynchrounous-data-fetching-using/m-p/1230791#M6481</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Alexandre,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I just wondering why it is still so slow.&lt;BR /&gt;To fetch ca. 160.000 rows it takes approximately 32 seconds.&lt;/P&gt;&lt;P&gt;What is wrong in the implementation? How standard qliksense objects are fetching the data?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kind regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Patric&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Dec 2016 15:28:35 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Qliksense-API-parallel-asynchrounous-data-fetching-using/m-p/1230791#M6481</guid>
      <dc:creator>pamaxeed</dc:creator>
      <dc:date>2016-12-09T15:28:35Z</dc:date>
    </item>
    <item>
      <title>Re: Qliksense API - parallel asynchrounous data fetching using Promises</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Qliksense-API-parallel-asynchrounous-data-fetching-using/m-p/1230792#M6482</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;None of Qlik's visualization fetches all of the data up-front but instead pages in additional data as needed when you scroll of zoom in different objects.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sending that much data over the wire is probably kinda slow, you probably want to implement some kind of gradual rendering of whatever you are doing. A lot of the metadata is already provided up-front for you to calculate min/max and labels.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Dec 2016 20:09:49 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Qliksense-API-parallel-asynchrounous-data-fetching-using/m-p/1230792#M6482</guid>
      <dc:creator>Alexander_Thor</dc:creator>
      <dc:date>2016-12-12T20:09:49Z</dc:date>
    </item>
    <item>
      <title>Re: Qliksense API - parallel asynchrounous data fetching using Promises</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Qliksense-API-parallel-asynchrounous-data-fetching-using/m-p/1230793#M6483</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Function paint only have access to the backendApi, I do not have access to the model. Can i access the model in any other way?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;IMG alt="apagar.png" class="jive-image image-1" src="https://community.qlik.com/legacyfs/online/205311_apagar.png" style="height: auto;" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 15 Jun 2018 10:53:21 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Qliksense-API-parallel-asynchrounous-data-fetching-using/m-p/1230793#M6483</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2018-06-15T10:53:21Z</dc:date>
    </item>
    <item>
      <title>Re: Qliksense API - parallel asynchrounous data fetching using Promises</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Qliksense-API-parallel-asynchrounous-data-fetching-using/m-p/1230794#M6484</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;You'll find it at this.backendApi.model.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Erik Wetterberg&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 15 Jun 2018 14:28:28 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Qliksense-API-parallel-asynchrounous-data-fetching-using/m-p/1230794#M6484</guid>
      <dc:creator>ErikWetterberg</dc:creator>
      <dc:date>2018-06-15T14:28:28Z</dc:date>
    </item>
    <item>
      <title>Re: Qliksense API - parallel asynchrounous data fetching using Promises</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Qliksense-API-parallel-asynchrounous-data-fetching-using/m-p/1230795#M6485</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;So the reason that the getData method on the BackendApi semi-failed under async operations was due to us having an internal cache and throttle to avoid congestion on the websocket pipe.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However since Feb 2018 we did introduce a way to turn this cache off which would allow you fetch multiple pages via the backendapi in a async way.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://help.qlik.com/en-US/sense-developer/April2018/Subsystems/APIs/Content/BackendAPI/setCacheOptions-method.htm" title="https://help.qlik.com/en-US/sense-developer/April2018/Subsystems/APIs/Content/BackendAPI/setCacheOptions-method.htm"&gt;https://help.qlik.com/en-US/sense-developer/April2018/Subsystems/APIs/Content/BackendAPI/setCacheOptions-method.htm&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Jun 2018 08:57:40 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Qliksense-API-parallel-asynchrounous-data-fetching-using/m-p/1230795#M6485</guid>
      <dc:creator>Alexander_Thor</dc:creator>
      <dc:date>2018-06-27T08:57:40Z</dc:date>
    </item>
  </channel>
</rss>

