原型 - AJAX Request() 方法
此 AJAX 方法启动并处理 AJAX 请求。此对象是一个通用 AJAX 请求器:它处理请求的生命周期,处理样板代码,并允许您插入回调函数以满足您的自定义需求。
在可选的 options 哈希中,您可以根据您的自定义需求使用任何回调函数,例如 onComplete 和/或 onSuccess。
语法
new Ajax.Request(url[, options]);
一旦对象创建,它就会启动请求,然后在整个生命周期中继续处理它。定义的生命周期如下所示:
- 已创建
- 已初始化
- 请求已发送
- 正在接收响应(可能会发生多次,因为数据包正在传入)
- 响应已接收,请求已完成
有一组回调函数,在Ajax 选项中定义,它们按以下顺序触发:
- onCreate(这实际上是为AJAX 全局响应器保留的回调)
- onUninitialized(映射到已创建)
- onLoading(映射到已初始化)
- onLoaded(映射到请求已发送)
- onInteractive(映射到正在接收响应)
- onXYZ(数字响应状态代码),onSuccess 或 onFailure(见下文)
- onComplete
可移植性
根据浏览器如何实现XMLHttpRequest,一个或多个回调可能永远不会被调用。特别是,onLoaded 和 onInteractive 到目前为止还不是 100% 安全的。但是,全局的onCreate、onUninitialized 和最后两个步骤是完全有保证的。
返回值
new Ajax.Request
禁用和启用 PeriodicalUpdater
您可以通过简单地调用其 stop 方法来停止正在运行的 PeriodicalUpdater。如果您希望稍后重新启用它,只需调用其 start 方法即可。两者都不接受参数。
示例
<html> <head> <title>Prototype examples</title> <script type = "text/javascript" src = "/javascript/prototype.js"></script> <script> function SubmitRequest() { new Ajax.Request('/cgi-bin/ajax.cgi', { method: 'get', onSuccess: successFunc, onFailure: failureFunc }); } function successFunc(response) { if (200 == response.status) { alert("Call is success"); } var container = $('notice'); var content = response.responseText; container.update(content); } function failureFunc(response) { alert("Call is failed" ); } </script> </head> <body> <p>Click submit button see how current notice changes.</p> <br /> <div id = "notice">Current Notice</div> <br /> <br /> <input type = "button" value = "Submit" onclick = "SubmitRequest();"/> </body> </html>
以下是ajax.cgi的内容。
#!/usr/bin/perl print "Content-type: text/html\n\n"; print "This content is returned by AJAX cgi <br />"; print "Current Time " . localtime;
输出
参数和 HTTP 方法
您可以将请求的参数作为 options 中的 parameters 属性传递:
new Ajax.Request('/some_url', { method: 'get', parameters: {company: 'example', limit: 12} });
prototype_ajax_tutorial.htm
广告