Mercurial > repos > jankanis > blast2html
annotate NCBI Blast reference example_files/remote_data_provider.js @ 81:40ce2043006a
merge py2.6 branch
author | Jan Kanis <jan.code@jankanis.nl> |
---|---|
date | Thu, 19 Jun 2014 17:00:29 +0200 |
parents | 344cd76f6fd2 |
children |
rev | line source |
---|---|
0
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
1 //========================================================================================================= |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
2 function RemoteDataProvider(sUrl) { |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
3 this.iActiveRequests = 0; |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
4 this.sUrl = sUrl; |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
5 } |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
6 |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
7 //------------------------------------------------------------------------------------------------------------- |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
8 RemoteDataProvider.prototype.GetHttpObj = function() { |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
9 var oHttpObj = null; |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
10 try { |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
11 oHttpObj = new ActiveXObject("Msxml2.XMLHTTP"); |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
12 } catch(e) { |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
13 try { |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
14 oHttpObj = new ActiveXObject("Microsoft.XMLHTTP") |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
15 } catch(oc) { |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
16 oHttpObj = null; |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
17 } |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
18 } |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
19 if (!oHttpObj && typeof XMLHttpRequest != "undefined") { |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
20 oHttpObj = new XMLHttpRequest(); |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
21 } |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
22 return oHttpObj; |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
23 } |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
24 |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
25 //------------------------------------------------------------------------------------------------------------- |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
26 RemoteDataProvider.prototype.Request = function(sRequest, method) { |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
27 var oHttpObj = this.GetHttpObj(); |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
28 if (null == oHttpObj) return; |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
29 |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
30 method = (!method) ? "GET" : "POST"; |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
31 var sURL = (method == "GET") ? this.sUrl + "?" + sRequest : this.sUrl; //alert(sURL); |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
32 this.iActiveRequests++; |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
33 var oThis = this; |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
34 oHttpObj.onreadystatechange = function () { |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
35 if (oHttpObj.readyState == 4 && oHttpObj.status == 200) { |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
36 oThis.onSuccess(oHttpObj); |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
37 oThis.iActiveRequests--; |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
38 oThis.onStop(); |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
39 } else if(oHttpObj.readyState == 4 && oHttpObj.status != 200) { |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
40 oThis.onError(oHttpObj); |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
41 oThis.iActiveRequests--; |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
42 oThis.onStop(); |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
43 } |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
44 }; |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
45 |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
46 if (oHttpObj.readyState != 0) oHttpObj.abort(); |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
47 this.onStart(); |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
48 oHttpObj.open(method, sURL, true); |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
49 // oHttpObj.setRequestHeader('Cache-Control', 'no-cache'); |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
50 var params = (method == "GET") ? null : sRequest; |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
51 if (params) { |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
52 oHttpObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
53 oHttpObj.setRequestHeader("Content-length", params.length); |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
54 oHttpObj.setRequestHeader("Connection", "close"); |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
55 } |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
56 oHttpObj.send(params); |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
57 } |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
58 |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
59 //------------------------------------------------------------------------------------------------------------- |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
60 RemoteDataProvider.prototype.onSuccess = function(obj) { |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
61 alert(["success:", this.iActiveRequests, obj.responseText]); |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
62 } |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
63 |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
64 //------------------------------------------------------------------------------------------------------------- |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
65 RemoteDataProvider.prototype.onStart = function() { |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
66 // alert(["start:", this.iActiveRequests]); |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
67 } |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
68 |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
69 //------------------------------------------------------------------------------------------------------------- |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
70 RemoteDataProvider.prototype.onStop = function() { |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
71 // alert(["start:", this.iActiveRequests]); |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
72 } |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
73 |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
74 //------------------------------------------------------------------------------------------------------------- |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
75 RemoteDataProvider.prototype.onError = function(obj) { |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
76 //alert(["error:", this.iActiveRequests, obj.status]); |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
77 } |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
78 |
bad241dc701f
add example input blast xml and output html page
Jan Kanis <jan.code@jankanis.nl>
parents:
diff
changeset
|
79 |