1 function AI_NetworkManager(env){
3 this.PHPExtPath = "./ainet.php";
4 this.DBPHPPath = "./dbmysql.php";
6 AI_NetworkManager.prototype = {
8 //https://sourceforge.jp/projects/h58pcdgame/scm/git/GameScriptCoreLibrary/blobs/master/www/corelib/coresubc.js
9 //http://hakuhin.jp/js/xmlhttprequest.html
10 CreateRequestObject: function(){
14 // XMLHttpRequest オブジェクトを作成
15 rq = new XMLHttpRequest();
19 rq = new ActiveXObject('MSXML2.XMLHTTP.6.0');
22 rq = new ActiveXObject('MSXML2.XMLHTTP.3.0');
25 rq = new ActiveXObject('MSXML2.XMLHTTP');
32 RequestObjectDisableCache: function(rq){
33 //call after open request.
35 //http://vird2002.s8.xrea.com/javascript/XMLHttpRequest.html
36 rq.setRequestHeader('Pragma', 'no-cache'); // HTTP/1.0 における汎用のヘッダフィールド
37 rq.setRequestHeader('Cache-Control', 'no-cache'); // HTTP/1.1 におけるキャッシュ制御のヘッダフィールド
38 rq.setRequestHeader('If-Modified-Since', 'Thu, 01 Jun 1970 00:00:00 GMT');
41 sendRequestSync: function(mode, url, data){
43 var q = this.CreateRequestObject();
44 q.open(mode, url, false);
45 q.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
46 this.RequestObjectDisableCache(q);
50 this.env.debug("AI_NetworkManager:sendRequestSync:Network Error.\n");
54 alert("ネットワークにアクセスできません。" + q.status + ":" + q.statusText);
55 }else if((200 <= q.status && q.status < 300) || (q.status == 304)){
56 var res = q.responseText;
59 alert("サーバーがエラーを返しました。" + request.status + ":" + request.statusText);
63 sendRequestAsync: function(mode, url, data, callback){
66 var q = this.CreateRequestObject();
68 q.onreadystatechange = function(){
69 if(q.readyState == 4){
71 alert("ネットワークにアクセスできません。" + q.status + ":" + q.statusText);
72 }else if((200 <= q.status && q.status < 300) || (q.status == 304)){
73 var res = q.responseText;
76 alert("サーバーがエラーを返しました。" + request.status + ":" + request.statusText);
80 q.open(mode, url, true);
81 q.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
82 this.RequestObjectDisableCache(q);
85 sendRequestThroughPHPSync: function(mode, url, data){
86 var sendURL = this.PHPExtPath;
87 sendURL += "?cmd=httpreq&url=";
88 sendURL += encodeURIComponent(url);
89 return this.sendRequestSync("GET", sendURL);
91 networkDBUpdate: function(){
93 var cl = this.env.memory.root;
95 for(var i = 0, iLen = cl.length; i < iLen; i++){
97 if(k instanceof AI_MemoryTag){
98 var sendURL = this.DBPHPPath;
99 sendURL += "?action=add";
100 sendURL += "&uuid=" + k.uuid;
101 sendURL += "&typeid=" + k.type;
102 sendURL += "&desc=" + (k.str ? k.str : "");
103 sendURL += "&data=" + k.parseToStringData();
104 var res = this.sendRequestSync("GET", sendURL);
105 this.env.debug(res + "\n");
109 networkDBViewAll: function(){
110 var sendURL = this.DBPHPPath;
111 sendURL += "?action=viewall";
112 var res = this.sendRequestSync("GET", sendURL);
113 this.env.debug(res + "\n");