diff options
author | wei <> | 2006-09-23 06:40:38 +0000 |
---|---|---|
committer | wei <> | 2006-09-23 06:40:38 +0000 |
commit | 6fd29b65290509f55172efccaacb5f91a4a884df (patch) | |
tree | 42b15f1a71afec31812fc0961f7fe15b2e4a5dd9 /framework/Web/Javascripts/js/compressed/ajax.js | |
parent | a5467e842316daf6a8a4345740f05a9731167ce1 (diff) |
Add TJsonService
Diffstat (limited to 'framework/Web/Javascripts/js/compressed/ajax.js')
-rw-r--r-- | framework/Web/Javascripts/js/compressed/ajax.js | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/framework/Web/Javascripts/js/compressed/ajax.js b/framework/Web/Javascripts/js/compressed/ajax.js index 1686d86f..79ef1848 100644 --- a/framework/Web/Javascripts/js/compressed/ajax.js +++ b/framework/Web/Javascripts/js/compressed/ajax.js @@ -22,10 +22,13 @@ if(this.responseIsSuccess()){if(this.onComplete) setTimeout(this.onComplete.bind(this),10);}}});Ajax.PeriodicalUpdater=Class.create();Ajax.PeriodicalUpdater.prototype=Object.extend(new Ajax.Base(),{initialize:function(container,url,options){this.setOptions(options);this.onComplete=this.options.onComplete;this.frequency=(this.options.frequency||2);this.decay=(this.options.decay||1);this.updater={};this.container=container;this.url=url;this.start();},start:function(){this.options.onComplete=this.updateComplete.bind(this);this.onTimerEvent();},stop:function(){this.updater.onComplete=undefined;clearTimeout(this.timer);(this.onComplete||Prototype.emptyFunction).apply(this,arguments);},updateComplete:function(request){if(this.options.decay){this.decay=(request.responseText==this.lastText?this.decay*this.options.decay:1);this.lastText=request.responseText;} this.timer=setTimeout(this.onTimerEvent.bind(this),this.decay*this.frequency*1000);},onTimerEvent:function(){this.updater=new Ajax.Updater(this.container,this.url,this.options);}});Object.extend(Ajax.Request.prototype,{respondToReadyState:function(readyState) {var event=Ajax.Request.Events[readyState];var transport=this.transport,json=this.getHeaderData(Prado.CallbackRequest.DATA_HEADER);if(event=='Complete') +{if((this.header('Content-type')||'').match(/^text\/javascript/i)) {try -{Prado.CallbackRequest.updatePageState(this,transport);Ajax.Responders.dispatch('on'+transport.status,this,transport,json);Prado.CallbackRequest.dispatchActions(transport,this.getHeaderData(Prado.CallbackRequest.ACTION_HEADER));(this.options['on'+this.transport.status]||this.options['on'+(this.responseIsSuccess()?'Success':'Failure')]||Prototype.emptyFunction)(this,json);}catch(e){this.dispatchException(e);} -if((this.header('Content-type')||'').match(/^text\/javascript/i)) -this.evalResponse();} +{json=eval('('+transport.responseText+')');}catch(e) +{if(typeof(json)=="string") +json=Prado.CallbackRequest.decode(result);}} +try +{Prado.CallbackRequest.updatePageState(this,transport);Ajax.Responders.dispatch('on'+transport.status,this,transport,json);Prado.CallbackRequest.dispatchActions(transport,this.getHeaderData(Prado.CallbackRequest.ACTION_HEADER));(this.options['on'+this.transport.status]||this.options['on'+(this.responseIsSuccess()?'Success':'Failure')]||Prototype.emptyFunction)(this,json);}catch(e){this.dispatchException(e);}} try{(this.options['on'+event]||Prototype.emptyFunction)(this,json);Ajax.Responders.dispatch('on'+event,this,transport,json);}catch(e){this.dispatchException(e);} if(event=='Complete') this.transport.onreadystatechange=Prototype.emptyFunction;},getHeaderData:function(name) |