Comparing version
34
index.js
@@ -6,5 +6,14 @@ const uuidv4 = require('uuid/v4'); | ||
let config = { | ||
// Upload the website interaction data object when every `frequency` events are captured. | ||
// Set upload mode: "periodic" or "event-triggered" | ||
uploadMode: "periodic", | ||
// If `uploadMode` == "periodic", data will be uploaded every `uploadPeriod` ms. | ||
// If no data are collected in a period, no data will be uploaded | ||
uploadPeriod: 5000, | ||
// If `uploadMode` == "event-triggered" | ||
// The website interaction data will be uploaded when every `frequency` events are captured. | ||
frequency: 50, | ||
// The website interaction data object will be encoded by `encoder` before uploading to the server. | ||
// The website interaction data will be encoded by `encoder` before uploading to the server. | ||
encoder: JSON.stringify, | ||
@@ -39,2 +48,4 @@ // The response data will be decoded by `decoder` | ||
let uploadIdx; | ||
let uploadInterval; | ||
let enable = false; | ||
@@ -116,3 +127,3 @@ function getRelativeTimestampInSeconds() { | ||
if ( eventsList.length % config.frequency == 0 ) { | ||
if ( config.uploadMode == "event-triggered" && eventsList.length % config.frequency == 0 ) { | ||
uploadTrace(); | ||
@@ -150,2 +161,18 @@ } | ||
uploadTrace(true); | ||
if (config.uploadMode === "periodic") { | ||
uploadInterval = setInterval(() => { | ||
console.log("here"); | ||
if (eventsList.length != 0) { | ||
uploadTrace(); | ||
} | ||
}, config.uploadPeriod); | ||
} | ||
// clean up before unloading the window | ||
onbeforeunload = (evt) => { | ||
if (eventsList.length != 0) { | ||
uploadTrace(); | ||
} | ||
} | ||
} | ||
@@ -157,3 +184,4 @@ | ||
}); | ||
clearInterval(uploadInterval); | ||
uploader.stop(); | ||
} |
{ | ||
"name": "mouselog", | ||
"version": "0.0.6", | ||
"version": "0.0.7-beta1", | ||
"description": "The mouse tracking agent for Mouselog.", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -13,3 +13,3 @@ [](https://www.npmjs.com/package/mouselog) | ||
```html | ||
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/mouselog@0.0.5-beta2/mouselog.js"></script> | ||
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/mouselog@0.0.7-beta1/mouselog.js"></script> | ||
<script> | ||
@@ -23,3 +23,3 @@ mouselog.run("Your_Server_Url", "Your_Website_Id"); | ||
var script = document.createElement("script"); | ||
script.src = "https://cdn.jsdelivr.net/npm/mouselog@0.0.5-beta2/mouselog.js"; | ||
script.src = "https://cdn.jsdelivr.net/npm/mouselog@0.0.7-beta1/mouselog.js"; | ||
script.onload = () => { | ||
@@ -44,13 +44,22 @@ mouselog.run("Your_Server_Url", "Your_Website_Id"); | ||
let config = { | ||
// Upload the data object when every `frequency` events are captured. | ||
// Set upload mode: "periodic" or "event-triggered" | ||
uploadMode: "periodic", | ||
// If `uploadMode` == "periodic", data will be uploaded every `uploadPeriod` ms. | ||
// If no data are collected in a period, no data will be uploaded | ||
uploadPeriod: 5000, | ||
// If `uploadMode` == "event-triggered" | ||
// The website interaction data will be uploaded when every `frequency` events are captured. | ||
frequency: 50, | ||
// Data objects will be encoded by `encoder` before uploading to the server. | ||
// The website interaction data will be encoded by `encoder` before uploading to the server. | ||
encoder: JSON.stringify, | ||
// The response data will be decoded by `decoder` | ||
decoder: x => x, | ||
// Use GET method to upload data? (stringified data will be embedded in URI) default: false | ||
// Use GET method to upload data? (stringified data will be embedded in URI) | ||
enableGET: false, | ||
// Time interval for resending the failed trace data, default: 3000 | ||
// Time interval for resending the failed trace data | ||
resendInterval: 3000 | ||
} | ||
}; | ||
``` | ||
@@ -57,0 +66,0 @@ Run Mouselog and it will automatically collect all you want. |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
58289
59%10
25%689
214.61%91
10.98%2
100%