update
Events
by ilaria_nunziante
HTML
<link rel="stylesheet" href="https://s3.amazonaws.com/flexmonster/2.3/demo.css">
<script src="https://cdn.flexmonster.com/flexmonster.js"></script>
<script
src="https://code.jquery.com/jquery-3.4.1.min.js"
integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
crossorigin="anonymous"></script>
<script id="myWorker">
var i = 0;
console.log('workerCode');
setInterval(function() {
console.log('workerinterval');
i++;
postMessage(i); // sent data to main app
}, 500);
</script>
<button id="btn" onclick="updateData()">Update data</button>
<span id="dateId"></span>
<div id="pivot-container">The component will appear here</div>
JavaScript
var pivot = new Flexmonster({
container: "pivot-container",
componentFolder: "https://cdn.flexmonster.com/",
toolbar: true,
report: {
dataSource: {
data: getData()
},
"slice": {
"rows": [
{
"uniqueName": "Category"
},
{
"uniqueName": "Product"
},
{
"uniqueName": "[Measures]"
}
],
"columns": [
{
"uniqueName": "Bucket"
}
],
"measures": [
{
"uniqueName": "Quantity",
"aggregation": "sum"
}, {
"uniqueName": "Quantity2",
"aggregation": "sum"
}, {
"uniqueName": "Quantity3",
"aggregation": "sum"
}
]
}
}
});
var w;
var workerData = new Blob([document.getElementById('myWorker').textContent], {
type: "text/javascript"
});
function startWorker() {
if (typeof(Worker) !== "undefined") {
if (typeof(w) == "undefined") {
//w = new Worker("demo_worker.js");
w = new Worker(window.URL.createObjectURL(workerData));
}
w.onmessage = function(event) {
console.log('0900');
document.getElementById("dateId").innerHTML = event.data;
};
} else {
document.getElementById("dateId").innerHTML = "Sorry! No Web Worker support.";
}
}
function stopWorker() {
w.terminate();
w = undefined;
}
/* To see the alert you should change something in the component.
For example, update data slice or apply filtering. */
function updateData() {
console.log('started');
startWorker();
var dataForUpdate = [];
var i;
for(i=0; i< 5000; i++){
dataForUpdate.push({
Product: "Product_" + i+500000,
Category: "Category_" + i+1,
Bucket: "Bucket" + i+500000,
RowId: i+500000,
Quantity2: i*3,
});
};
flexmonster.updateData({data:...