stat.js 980 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /**
  2. * @author oldj
  3. * @blog http://oldj.net
  4. */
  5. 'use strict';
  6. var url = 'http://lab.oldj.net/s.gif';
  7. var queue = [];
  8. var session_id = (new Date()).getTime() + ':' + Math.random();
  9. var config = require('./config');
  10. var v = [config.VERSION, config.bundle_version].join('.');
  11. function record(action) {
  12. queue.push(action);
  13. }
  14. exports.record = record;
  15. function send() {
  16. if (queue.length === 0) {
  17. return;
  18. }
  19. var src = url + '?app=sh3&action=' + queue.splice(0).join(',')
  20. + '&v=' + encodeURIComponent(v)
  21. + '&sid=' + encodeURIComponent(session_id)
  22. + '&_r=' + Math.random();
  23. var id = ('_rnd_img_' + Math.random()).replace('.', '');
  24. var img = new Image();
  25. window[id] = img;
  26. img.src = src;
  27. img.onload = img.onerror = function () {
  28. window[id] = null;
  29. };
  30. }
  31. setInterval(function () {
  32. // 每一段时间自动打点
  33. record('tick');
  34. }, 60 * 1000 * 42);
  35. setInterval(function () {
  36. send();
  37. }, 5000);