博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

prototype.js 的 Ajax.updater 的 用法

Posted on 2009-08-04 15:45  澍可  阅读(3028)  评论(0编辑  收藏  举报
ajax.updater 方法有3个参数: ajax.updater(container, url, options)
分别表示 1.控件id;2.请求的url;3.具体如下(可选):

属性 类型 Default 描述
method Array 'post' HTTP 请求方式。get or post
parameters String '' 在HTTP请求中传入的url格式的值列表。
asynchronous Boolean true 指定是否做异步 AJAX 请求。
postBody String undefined 在HTTP POST的情况下,传入请求体中的内容。
requestHeaders Array undefined 和请求一起被传入的HTTP头部列表, 这个列表必须含有偶数个项目, 任何奇数项目是自定义的头部的名称, 接下来的偶数项目使这个头部项目的字符串值。 例子:['my-header1', 'this is the value', 'my-other-header', 'another value']
onXXXXXXXX Function(XMLHttpRequest) undefined 在AJAX请求中,当相应的事件/状态形成的时候调用的自定义方法。 例如 var myOpts = {onComplete: showResponse, onLoaded: registerLoaded};. 这个方法将被传入一个参数, 这个参数是携带AJAX操作的 XMLHttpRequest对象。
onSuccess Function(XMLHttpRequest) undefined 当AJAX请求成功完成的时候调用的自定义方法。 这个方法将被传入一个参数, 这个参数是携带AJAX操作的 XMLHttpRequest对象。
onFailure Function(XMLHttpRequest) undefined 当AJAX请求完成但出现错误的时候调用的自定义方法。 这个方法将被传入一个参数, 这个参数是携带AJAX操作的 XMLHttpRequest对象。
insertion Function(Object, String) null 为了把返回的文本注入到一个元素中而执行的方法。 这个方法将被传入两个参数,要被更新的对象并且只应用于 Ajax.Updater 的响应文本 。
evalScripts Boolean undefined, false 决定当响应到达的时候是否执行其中的脚本块,只在 Ajax.Updater 对象中应用。
decay Number undefined, 1 决定当最后一次响应和前一次响应相同时在 Ajax.PeriodicalUpdater 对象中的减漫访问的次数, 例如,如果设为2,后来的刷新和之前的结果一样, 这个对象将等待2个设定的时间间隔进行下一次刷新, 如果又一次一样, 那么将等待4次,等等。 不设定这个只,或者设置为1,将避免访问频率变慢。

function getContents() 

var request_url = "test1.html";       // 需要获取内容的url 
var request_pars = '';//请求参数 

var myAjax = new Ajax.Updater('result', request_url,{ // 将request_url返回内容绑定到id为result的容器中 
method     : 'get'//HTTP请求的方法,get or post 
parameters : request_pars, //请求参数 
onFailure  : reportError, //失败的时候调用 reportError 函数 
onLoading  : loading, //正在获得内容的时候 
onComplete : done     //内容获取完毕的时候 
}); 


function loading() 

$(
'loading').style.display = 'block'


function done() 

$(
'loading').style.display = 'none'


function reportError(request) 

alert(
'Sorry. There was an error.'); 
Ajax.Updater为我们提供加载文档时候的三种状态, onComplete,onLoading,onFailure.我们可以自定义一个函数分别相应这三种不同的状态。
下面的例子用到了success (一切OK的时候才被用到) ,和它同等地位的属性还有一个failure (有地方出问题的时候被用到) 这里没用到。出错时在 onFailure 处调用 reportError 方法。
<script>
    
function getHTML()
    {
        
var url = 'http://yourserver/app/getSomeHTML';
        
var pars = 'someParameter=ABC';
        
var myAjax = new Ajax.Updater(
                    {success: 
'placeholder'},
                    url,
                    {method: 
'get', parameters: pars, onFailure: reportError});
    }
    
function reportError(request)
    {
        alert(
'Sorry. There was an error.');
    }
</script>

<input type=button value=GetHtml onclick="getHTML()">
<div id="placeholder"></div>