原型 - 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,一个或多个回调可能永远不会被调用。特别是,onLoadedonInteractive 到目前为止还不是 100% 安全的。但是,全局的onCreateonUninitialized 和最后两个步骤是完全有保证的。

返回值

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
广告