Prototype - AJAX Request() 方法
此 AJAX 方法启动并处理 AJAX 请求。此对象是通用 AJAX 请求器:它处理请求的生命周期、处理样板并允许您插入回调函数以满足您的自定义需求。
在可选选项哈希中,您可以根据自定义需求使用任何回调函数,如 onComplete 和/或 onSuccess。
语法
new Ajax.Request(url[, options]);
对象创建后,它会立即启动请求,然后在其整个生命周期中继续处理请求。定义的生命周期如下 −
- 已创建
- 已初始化
- 已发送请求
- 正在接收响应(随着数据包的进入,可能会发生多次)
- 已接收响应,请求完成
在 Ajax Options 中定义了一组回调函数,它们按以下顺序触发 −
- 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 "; print "This content is returned by AJAX cgi <br />"; print "Current Time " . localtime;
输出
参数和 HTTP 方法
您可以将请求的参数作为选项中的参数属性传递 −
new Ajax.Request('/some_url', { method: 'get', parameters: {company: 'example', limit: 12} });