Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'js/piwik.js')
-rw-r--r--js/piwik.js32
1 files changed, 23 insertions, 9 deletions
diff --git a/js/piwik.js b/js/piwik.js
index 4bc799d6d6..40c2f2d9a3 100644
--- a/js/piwik.js
+++ b/js/piwik.js
@@ -999,7 +999,7 @@ if (typeof window.JSON === 'object' && typeof window.JSON.stringify === 'functio
addListener, enableLinkTracking, enableJSErrorTracking, setLinkTrackingTimer, getLinkTrackingTimer,
enableHeartBeatTimer, disableHeartBeatTimer, killFrame, redirectFile, setCountPreRendered, setVisitStandardLength,
trackGoal, trackLink, trackPageView, getNumTrackedPageViews, trackRequest, ping, queueRequest, trackSiteSearch, trackEvent,
- requests, timeout, enabled, sendRequests, queueRequest, disableQueueRequest,setRequestQueueInterval,interval,getRequestQueue, unsetPageIsUnloading,
+ requests, timeout, enabled, sendRequests, queueRequest, canQueue, pushMultiple, disableQueueRequest,setRequestQueueInterval,interval,getRequestQueue, unsetPageIsUnloading,
setEcommerceView, getEcommerceItems, addEcommerceItem, removeEcommerceItem, clearEcommerceCart, trackEcommerceOrder, trackEcommerceCartUpdate,
deleteCookie, deleteCookies, offsetTop, offsetLeft, offsetHeight, offsetWidth, nodeType, defaultView,
innerHTML, scrollLeft, scrollTop, currentStyle, getComputedStyle, querySelectorAll, splice,
@@ -5756,11 +5756,25 @@ if (typeof window.Piwik !== 'object') {
sendBulkRequest(requestsToTrack, configTrackerPause);
}
},
+ canQueue: function () {
+ return !isPageUnloading && this.enabled;
+ },
+ pushMultiple: function (requests) {
+ if (!this.canQueue()) {
+ sendBulkRequest(requests, configTrackerPause);
+ return;
+ }
+
+ var i;
+ for (i = 0; i < requests.length; i++) {
+ this.push(requests[i]);
+ }
+ },
push: function (requestUrl) {
if (!requestUrl) {
return;
}
- if (isPageUnloading || !this.enabled) {
+ if (!this.canQueue()) {
// we don't queue as we need to ensure the request will be sent when the page is unloading...
sendRequest(requestUrl, configTrackerPause);
return;
@@ -7065,7 +7079,7 @@ if (typeof window.Piwik !== 'object') {
var contentNodes = content.findContentNodes();
var requests = getContentImpressionsRequestsFromNodes(contentNodes);
- sendBulkRequest(requests, configTrackerPause);
+ requestQueue.pushMultiple(requests);
});
});
};
@@ -7125,7 +7139,7 @@ if (typeof window.Piwik !== 'object') {
var contentNodes = content.findContentNodes();
var requests = getCurrentlyVisibleContentImpressionsRequestsIfNotTrackedYet(contentNodes);
- sendBulkRequest(requests, configTrackerPause);
+ requestQueue.pushMultiple(requests);
});
});
};
@@ -7155,7 +7169,7 @@ if (typeof window.Piwik !== 'object') {
trackCallback(function () {
var request = buildContentImpressionRequest(contentName, contentPiece, contentTarget);
- sendRequest(request, configTrackerPause);
+ requestQueue.push(request);
});
};
@@ -7179,7 +7193,7 @@ if (typeof window.Piwik !== 'object') {
var contentNodes = content.findContentNodesWithinNode(domNode);
var requests = getCurrentlyVisibleContentImpressionsRequestsIfNotTrackedYet(contentNodes);
- sendBulkRequest(requests, configTrackerPause);
+ requestQueue.pushMultiple(requests);
});
} else {
trackCallbackOnReady(function () {
@@ -7187,7 +7201,7 @@ if (typeof window.Piwik !== 'object') {
var contentNodes = content.findContentNodesWithinNode(domNode);
var requests = getContentImpressionsRequestsFromNodes(contentNodes);
- sendBulkRequest(requests, configTrackerPause);
+ requestQueue.pushMultiple(requests);
});
}
});
@@ -7222,7 +7236,7 @@ if (typeof window.Piwik !== 'object') {
trackCallback(function () {
var request = buildContentInteractionRequest(contentInteraction, contentName, contentPiece, contentTarget);
if (request) {
- sendRequest(request, configTrackerPause);
+ requestQueue.push(request);
}
});
};
@@ -7249,7 +7263,7 @@ if (typeof window.Piwik !== 'object') {
trackCallback(function () {
var request = buildContentInteractionRequestNode(domNode, contentInteraction);
if (request) {
- sendRequest(request, configTrackerPause);
+ requestQueue.push(request);
}
});
};