| ... | ... |
@@ -16,21 +16,33 @@ |
| 16 | 16 |
|
| 17 | 17 |
var cfg_endpoint = null; |
| 18 | 18 |
var cfg_data_field = null; |
| 19 |
+var cfg_bundle_max = 30; |
|
| 20 |
+var cfg_bundle_separator = "\r\n"; |
|
| 19 | 21 |
|
| 20 | 22 |
var to_send = []; |
| 21 | 23 |
var senders = [new XMLHttpRequest(), new XMLHttpRequest()]; |
| 22 | 24 |
var i_sender = 1; |
| 25 |
+var bundle_size = 0; |
|
| 23 | 26 |
|
| 24 |
-function sendHead() {
|
|
| 25 |
- if (to_send.length < 1) return; |
|
| 26 |
- var line = to_send[0].split(";")[1];
|
|
| 27 |
+function sendPayload(payload) {
|
|
| 27 | 28 |
var data = new FormData(); |
| 28 |
- data.append(cfg_data_field, line); |
|
| 29 |
+ data.append(cfg_data_field, payload); |
|
| 29 | 30 |
i_sender = 1 - i_sender; |
| 30 | 31 |
senders[i_sender].open("POST", cfg_endpoint, true);
|
| 31 | 32 |
senders[i_sender].send(data); |
| 32 | 33 |
} |
| 33 | 34 |
|
| 35 |
+function sendHead() {
|
|
| 36 |
+ if (to_send.length < 1) return; |
|
| 37 |
+ bundle_size = 0; |
|
| 38 |
+ var payload = []; |
|
| 39 |
+ while (bundle_size < cfg_bundle_max && bundle_size < to_send.length) {
|
|
| 40 |
+ payload.push(to_send[bundle_size].split(";")[1]);
|
|
| 41 |
+ bundle_size += 1; |
|
| 42 |
+ } |
|
| 43 |
+ sendPayload(payload.join(cfg_bundle_separator)); |
|
| 44 |
+} |
|
| 45 |
+ |
|
| 34 | 46 |
function enqueue(key, line) {
|
| 35 | 47 |
to_send.push(key + ";" + line); |
| 36 | 48 |
localStorage.setItem("toSend", to_send.join("|"));
|
| ... | ... |
@@ -42,6 +54,9 @@ function enqueue(key, line) {
|
| 42 | 54 |
} |
| 43 | 55 |
|
| 44 | 56 |
function uploadDone() {
|
| 57 |
+ if (bundle_size > 1) {
|
|
| 58 |
+ to_send.splice(0, bundle_size - 1); |
|
| 59 |
+ } |
|
| 45 | 60 |
var sent_key = to_send.shift().split(";")[0];
|
| 46 | 61 |
localStorage.setItem("toSend", to_send.join("|"));
|
| 47 | 62 |
Pebble.sendAppMessage({ "uploadDone": parseInt(sent_key, 10) });
|