<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>ZingSoft Demo</title> <script nonce="undefined" src="https://cdn.zingchart.com/zingchart.min.js"></script> <style> html, body { height: 100%; width: 100%; margin: 0; padding: 0; } #myChart { height: 100%; width: 100%; min-height: 150px; } .zc-ref { display: none; } #myChart button { position: absolute; top: 15px; left: 10px; z-index: 1000; } </style> </head> <body> <div id="myChart"> <a class="zc-ref" href="https://www.zingchart.com">Powered by ZingChart</a> <button onclick="window.parent.location.reload()">Reload Data</button> </div> <script> ZC.LICENSE = ["569d52cefae586f634c54f86dc99e6a9", "b55b025e438fa8a98e32482b5f768ff5"]; // make the AJAX request var oReq = new XMLHttpRequest(); oReq.addEventListener("load", renderFirstPlotInChart); oReq.open("GET", "https://zingchart-rest-api.glitch.me/api/data/plot/v1"); oReq.send(); // define chart JSON var myConfig = { type: 'bar', title: { text: 'Multiple Plots Rendering Asynchronously Using API', mediaRules: [{ maxWidth: 500, visible: false }] }, plot: { // barWidth: 25, // this will prevent users from noticing the barwidth changing animation: {}, // add animation to make the chart look alive }, legend: {}, scaleY: { values: '0:300:100' // this will prevent users from noticing the scale repaint }, series: [{ values: [], text: '', }] }; /* * callback for GET request is when we will render the chart */ function renderFirstPlotInChart() { myConfig.series[0].values = JSON.parse(this.responseText); myConfig.series[0].text = this.responseURL.slice(-2); zingchart.render({ id: 'myChart', data: myConfig, height: '100%', width: '100%' }); } /* * append the plots using ZingChart API method addplot * https://www.zingchart.com/docs/api/methods/#zingchart__exec__api__addplot */ function addAnotherPlot() { zingchart.exec('myChart', 'addplot', { data: { values: JSON.parse(this.responseText), text: this.responseURL.slice(-2) } }); } /* * Bind plots after the chart has rendered */ zingchart.bind('myChart', 'load', function(e) { /* * make AJAX request for the last two plots * Use setTimeouts to show what the effect * would look like when using large dataset */ setTimeout(function() { // call for second dataset oReq = new XMLHttpRequest(); oReq.addEventListener("load", addAnotherPlot); oReq.open("GET", "https://zingchart-rest-api.glitch.me/api/data/plot/v2"); oReq.send(); // call for third dataset setTimeout(function() { oReq = new XMLHttpRequest(); oReq.addEventListener("load", addAnotherPlot); oReq.open("GET", "https://zingchart-rest-api.glitch.me/api/data/plot/v3"); oReq.send(); }, 1000); }, 2000); }); </script> </body> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>ZingSoft Demo</title> <script src="https://cdn.zingchart.com/zingchart.min.js"></script> </head> <body> <div id="myChart"> <a class="zc-ref" href="https://www.zingchart.com">Powered by ZingChart</a> <button onclick="window.parent.location.reload()">Reload Data</button> </div> </body> </html>
html, body { height: 100%; width: 100%; margin: 0; padding: 0; } #myChart { height: 100%; width: 100%; min-height: 150px; } .zc-ref { display: none; } #myChart button { position: absolute; top: 15px; left: 10px; z-index: 1000; }
// make the AJAX request var oReq = new XMLHttpRequest(); oReq.addEventListener("load", renderFirstPlotInChart); oReq.open("GET", "https://zingchart-rest-api.glitch.me/api/data/plot/v1"); oReq.send(); // define chart JSON var myConfig = { type: 'bar', title: { text: 'Multiple Plots Rendering Asynchronously Using API', mediaRules: [{ maxWidth: 500, visible: false }] }, plot: { // barWidth: 25, // this will prevent users from noticing the barwidth changing animation: {}, // add animation to make the chart look alive }, legend: {}, scaleY: { values: '0:300:100' // this will prevent users from noticing the scale repaint }, series: [{ values: [], text: '', }] }; /* * callback for GET request is when we will render the chart */ function renderFirstPlotInChart() { myConfig.series[0].values = JSON.parse(this.responseText); myConfig.series[0].text = this.responseURL.slice(-2); zingchart.render({ id: 'myChart', data: myConfig, height: '100%', width: '100%' }); } /* * append the plots using ZingChart API method addplot * https://www.zingchart.com/docs/api/methods/#zingchart__exec__api__addplot */ function addAnotherPlot() { zingchart.exec('myChart', 'addplot', { data: { values: JSON.parse(this.responseText), text: this.responseURL.slice(-2) } }); } /* * Bind plots after the chart has rendered */ zingchart.bind('myChart', 'load', function(e) { /* * make AJAX request for the last two plots * Use setTimeouts to show what the effect * would look like when using large dataset */ setTimeout(function() { // call for second dataset oReq = new XMLHttpRequest(); oReq.addEventListener("load", addAnotherPlot); oReq.open("GET", "https://zingchart-rest-api.glitch.me/api/data/plot/v2"); oReq.send(); // call for third dataset setTimeout(function() { oReq = new XMLHttpRequest(); oReq.addEventListener("load", addAnotherPlot); oReq.open("GET", "https://zingchart-rest-api.glitch.me/api/data/plot/v3"); oReq.send(); }, 1000); }, 2000); });