X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=js%2Fpz2.js;h=e2025d0cab6621d76e4e57e54fa604e14ffd70a7;hb=8072aa01dfce99fcef6e4a0b8540ff611f3c26aa;hp=160998313fd94d6ad6a4b0fceba37514686ac06f;hpb=7cea3107863c9012afb5c4428b2a5a27674127f5;p=pazpar2-moved-to-github.git diff --git a/js/pz2.js b/js/pz2.js index 1609983..e2025d0 100644 --- a/js/pz2.js +++ b/js/pz2.js @@ -1,5 +1,5 @@ /* -** $Id: pz2.js,v 1.18 2007-05-18 15:16:18 jakub Exp $ +** $Id: pz2.js,v 1.22 2007-05-31 08:46:32 jakub Exp $ ** pz2.js - pazpar2's javascript client library. */ @@ -84,7 +84,7 @@ var pz2 = function(paramArray) { __myself.currQuery = null; //timers - __myself.statTime = paramArray.stattime || 2000; + __myself.statTime = paramArray.stattime || 1000; __myself.statTimer = null; __myself.termTime = paramArray.termtime || 1000; __myself.termTimer = null; @@ -94,10 +94,12 @@ var pz2 = function(paramArray) { __myself.bytargetTime = paramArray.bytargettime || 1000; __myself.bytargetTimer = null; - //useful? + // counters for each command and applied delay __myself.dumpFactor = 500; __myself.showCounter = 0; __myself.termCounter = 0; + __myself.statCounter = 0; + __myself.bytargetCounter = 0; // active clients, updated by stat and show // might be an issue since bytarget will poll accordingly @@ -181,6 +183,8 @@ pz2.prototype = { __myself.showCounter = 0; __myself.termCounter = 0; + __myself.bytargetCounter = 0; + __myself.statCounter = 0; if( !__myself.initStatusOK ) return; @@ -203,17 +207,19 @@ pz2.prototype = { //piggyback search __myself.show(0, num, sort); if ( __myself.statCallback ) - __myself.statTimer = setTimeout("__myself.stat()", __myself.statTime / 2); + __myself.stat(); + //__myself.statTimer = setTimeout("__myself.stat()", __myself.statTime / 4); if ( __myself.termlistCallback ) - //__myself.termlist(); - __myself.termTimer = setTimeout("__myself.termlist()", __myself.termTime / 2); + __myself.termlist(); + //__myself.termTimer = setTimeout("__myself.termlist()", __myself.termTime / 4); if ( __myself.bytargetCallback ) - __myself.bytargetTimer = setTimeout("__myself.bytarget()", __myself.bytargetTime / 2); + __myself.bytarget(); + //__myself.bytargetTimer = setTimeout("__myself.bytarget()", __myself.bytargetTime / 4); } else // if it gets here the http return code was 200 (pz2 errors are 417) // but the response was invalid, it should never occur - setTimeout("__myself.search(__myself.currQuery)", 1000); + setTimeout("__myself.search(__myself.currQuery)", 500); } ); }, @@ -242,9 +248,13 @@ pz2.prototype = { "failed": Number( data.getElementsByTagName("failed")[0].childNodes[0].nodeValue ), "error": Number( data.getElementsByTagName("error")[0].childNodes[0].nodeValue ) }; + + __myself.statCounter++; + var delay = __myself.statTime + __myself.statCounter * __myself.dumpFactor; + if ( activeClients > 0 ) + __myself.statTimer = setTimeout("__myself.stat()", delay); + __myself.statCallback(stat); - if (activeClients > 0) - __myself.statTimer = setTimeout("__myself.stat()", __myself.statTime); } else // if it gets here the http return code was 200 (pz2 errors are 417) @@ -276,6 +286,7 @@ pz2.prototype = { // first parse the status data send along with records // this is strictly bound to the format var activeClients = Number( data.getElementsByTagName("activeclients")[0].childNodes[0].nodeValue ); + __myself.activeClients = activeClients; var show = { "activeclients": activeClients, "merged": Number( data.getElementsByTagName("merged")[0].childNodes[0].nodeValue ), @@ -309,14 +320,14 @@ pz2.prototype = { } } } - __myself.showCallback(show); __myself.showCounter++; var delay = __myself.showTime; if (__myself.showCounter > __myself.showFastCount) - //delay *= 2; delay += __myself.showCounter * __myself.dumpFactor; - if (activeClients > 0) + if ( activeClients > 0 ) __myself.showTimer = setTimeout("__myself.show()", delay); + + __myself.showCallback(show); } else // if it gets here the http return code was 200 (pz2 errors are 417) @@ -372,12 +383,13 @@ pz2.prototype = { } } } + __myself.recordCallback(record); } else // if it gets here the http return code was 200 (pz2 errors are 417) // but the response was invalid, it should never occur - setTimeout("__myself.record(__myself.currRecID)", 1000); + setTimeout("__myself.record(__myself.currRecID)", 500); } ); }, @@ -392,7 +404,9 @@ pz2.prototype = { { "command": "termlist", "session": __myself.sessionID, "name": __myself.termKeys }, function(data) { if ( data.getElementsByTagName("termlist") ) { - var termList = { "activeclients": Number( data.getElementsByTagName("activeclients")[0].childNodes[0].nodeValue ) }; + var activeClients = Number( data.getElementsByTagName("activeclients")[0].childNodes[0].nodeValue ); + __myself.activeClients = activeClients; + var termList = { "activeclients": activeClients }; var termLists = data.getElementsByTagName("list"); //for each termlist for (i = 0; i < termLists.length; i++) { @@ -414,10 +428,12 @@ pz2.prototype = { } } - __myself.termlistCallback(termList); __myself.termCounter++; - if (termList["activeclients"] > 0) - __myself.termTimer = setTimeout("__myself.termlist()", (__myself.termTime + __myself.termCounter*__myself.dumpFactor)); + var delay = __myself.termTime + __myself.termCounter * __myself.dumpFactor; + if ( activeClients > 0 ) + __myself.termTimer = setTimeout("__myself.termlist()", delay); + + __myself.termlistCallback(termList); } else // if it gets here the http return code was 200 (pz2 errors are 417) @@ -450,9 +466,13 @@ pz2.prototype = { } } } - __myself.bytargetCallback(bytarget); + + __myself.bytargetCounter++; + var delay = __myself.bytargetTime + __myself.bytargetCounter * __myself.dumpFactor; if ( __myself.activeClients > 0 ) - __myself.bytargetTimer = setTimeout("__myself.bytarget()", __myself.bytargetTime); + __myself.bytargetTimer = setTimeout("__myself.bytarget()", delay); + + __myself.bytargetCallback(bytarget); } else // if it gets here the http return code was 200 (pz2 errors are 417) @@ -513,7 +533,7 @@ pzHttpRequest.prototype = var paramArr = new Array(); for ( var key in params ) { - paramArr.push(key + '=' + escape(params[key])); + paramArr.push(key + '=' + params[key] ); } if ( paramArr.length ) @@ -631,7 +651,7 @@ pzQuery.prototype = { { var ccl = ''; if( this.simpleQuery != '') - ccl = '"'+this.simpleQuery+'"'; + ccl = this.simpleQuery; for(var i = 0; i < this.advTerms.length; i++) { if (ccl != '') ccl = ccl + ' and ';