actionWorker.js 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. function V(httpRequest) {
  2. if (httpRequest.readyState === XMLHttpRequest.DONE) {
  3. if (httpRequest.status === 200) {
  4. alert(httpRequest.responseText);
  5. } else {
  6. alert('There was a problem with the request.');
  7. }
  8. }
  9. }
  10. (function(){
  11. var _worker = this;
  12. var _action = {
  13. _checkRequest: function(){
  14. if (this.request.readyState === XMLHttpRequest.DONE) {
  15. if (this.request.status === 200) {
  16. this._doneRequest();
  17. } else {
  18. this._errorRequest();
  19. }
  20. }
  21. },
  22. _createRequest: function(){
  23. this.request = new XMLHttpRequest();
  24. this.request.addEventListener("readystatechange", this._checkRequest.bind(this));
  25. },
  26. sendRequest: function(data){
  27. if (!this.request) this._createRequest();
  28. var method = data.method;
  29. var noCache = !!data.noCache;
  30. var async = !!data.loadAsync;
  31. var withCredentials = !!data.credentials;
  32. var url = data.address;
  33. var body = data.body;
  34. var debug = data.debug;
  35. var token = data.token;
  36. if (noCache) url = url+(((url.indexOf("?")!==-1) ? "&" : "?")+(new Date()).getTime());
  37. this.request.open(method, url, async);
  38. this.request.withCredentials = withCredentials;
  39. this.request.setRequestHeader("Content-Type", "application/json; charset=utf-8");
  40. this.request.setRequestHeader("Accept", "text/html,application/json,*/*");
  41. if (debug) this.request.setRequestHeader("x-debugger", "true");
  42. if (token){
  43. this.request.setRequestHeader("x-token", token);
  44. this.request.setRequestHeader("authorization", token);
  45. }
  46. this.request.send(body);
  47. },
  48. _doneRequest: function(){
  49. var json = JSON.parse(this.request.responseText);
  50. var xToken = this.request.getResponseHeader("x-token");
  51. if (xToken){
  52. json.xToken = xToken;
  53. }
  54. _worker.postMessage({"type": "done", "data": json});
  55. _worker.close();
  56. },
  57. _errorRequest: function(){
  58. _worker.postMessage({"type":"error", "data": {"status": this.request.status, "statusText": this.request.statusText, "responseText":this.request.responseText}});
  59. _worker.close();
  60. }
  61. };
  62. this.action = _action;
  63. })();
  64. onmessage = function(e) {
  65. this.action.sendRequest(e.data);
  66. //
  67. //
  68. // console.log('Worker: Message received from main script');
  69. // var options = e.data;
  70. //
  71. // httpRequest = new XMLHttpRequest();
  72. //
  73. //
  74. // if (isNaN(result)) {
  75. // postMessage('Please write two numbers');
  76. // } else {
  77. // const workerResult = 'Result: ' + result;
  78. // console.log('Worker: Posting message back to main script');
  79. // postMessage(workerResult);
  80. // }
  81. }