statistics_b3ce6b5.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /**
  2. * @file Describe the file
  3. * @author liumengjie
  4. */
  5. var ajax = {};
  6. window.__statis = {
  7. push: function (data) {
  8. /* eslint fecs-camelcase: [2, {ignore: ["/^ar_/"]}, {ignore: ["/^event_/"]}] */
  9. ajax.get('/artrack/count_ar', {
  10. event_id: 'share_page_pv',
  11. ar_key: data['arkey'],
  12. ar_type: data['artype']
  13. });
  14. }
  15. };
  16. ajax.x = function () {
  17. if (typeof XMLHttpRequest !== 'undefined') {
  18. return new XMLHttpRequest();
  19. }
  20. var versions = [
  21. 'MSXML2.XmlHttp.6.0',
  22. 'MSXML2.XmlHttp.5.0',
  23. 'MSXML2.XmlHttp.4.0',
  24. 'MSXML2.XmlHttp.3.0',
  25. 'MSXML2.XmlHttp.2.0',
  26. 'Microsoft.XmlHttp'
  27. ];
  28. var xhr;
  29. for (var i = 0; i < versions.length; i++) {
  30. try {
  31. xhr = new ActiveXObject(versions[i]);
  32. break;
  33. } catch (e) {}
  34. }
  35. return xhr;
  36. };
  37. ajax.send = function (url, method, data, success, fail, async) {
  38. if (async === undefined) {
  39. async = true;
  40. }
  41. var x = ajax.x();
  42. x.open(method, url, async);
  43. x.onreadystatechange = function () {
  44. if (x.readyState === 4) {
  45. var status = x.status;
  46. if (status >= 200 && status < 300) {
  47. success && success(x.responseText, x.responseXML);
  48. } else {
  49. fail && fail(status);
  50. }
  51. }
  52. };
  53. if (method === 'POST') {
  54. x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
  55. }
  56. x.send(data);
  57. };
  58. ajax.get = function (url, data, callback, fail, async) {
  59. var query = [];
  60. for (var key in data) {
  61. query.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key]));
  62. }
  63. ajax.send(url + (query.length ? '?' + query.join('&') : ''), 'GET', null, callback, fail, async);
  64. };
  65. ajax.post = function (url, data, callback, fail, async) {
  66. var query = [];
  67. for (var key in data) {
  68. query.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key]));
  69. }
  70. ajax.send(url, 'POST', query.join('&'), callback, fail, async);
  71. };
  72. // 发送统计请求
  73. // ajax.get('/artrack/count_ar', {
  74. // event_id: 'share_page_pv',
  75. // ar_key: arDatas['arkey'],
  76. // ar_type: arDatas['artype']
  77. // });