AJAX Request() 方法 | Prototype教程

返回到:Prototype AJAX 教程

此 AJAX 方法启动并处理 AJAX 请求。这个对象是一个通用的 AJAX 请求器:它处理请求的生命周期,处理样板,并允许您插入回调函数以满足您的自定义需求。

在可选选项散列中,您可以根据您的自定义需求使用任何回调函数,如 onComplete 和/或 onSuccess。

语法

new Ajax.Request(url[, options]);

一旦对象被创建,它就会发起请求,然后在其整个生命周期中继续处理它。定义的生命周期如下:

  • 已创建
  • 已初始化
  • 请求已发送
  • 收到响应(可能发生很多次,因为数据包进来)
  • 收到回复,请求完成

在Ajax Options 中定义了一组回调函数,它们按以下顺序触发 –

  • onCreate(这实际上是为AJAX 全局响应者保留的回调))
  • onUninitialized(映射到已创建)
  • onLoading(初始化时的映射)
  • onLoaded(发送请求后的地图)
  • onInteractive(收到响应的地图)
  • on XYZ(数字响应状态代码)、onSuccess 或 onFailure(见下文)
  • 完成时

可移植性

根据浏览器实现XMLHttpRequest的方式,一个或多个回调可能永远不会被调用。特别是,到目前为止,onLoadedonInteractive并不是 100% 安全的选择。然而,全局onCreateonUninitialized和最后两个步骤是非常有保证的。

返回值

新的 Ajax.Request

禁用和启用 PeriodicalUpdater

您可以通过简单地调用其停止方法来停止正在运行的 PeriodicalUpdater。如果你想稍后重新启用它,只需调用它的 start 方法。两者都没有争论。

例子

<html>
   <head>
      <title>Prototype examples</title>
      <script type = "text/javascript" src = "https://cdn.bootcdn.net/ajax/libs/prototype/1.7.3/prototype.min.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 方法

您可以将请求的参数作为选项中的参数属性传递:

new Ajax.Request('/some_url', {
   method: 'get',
   parameters: {company: 'example', limit: 12}
});

返回到:Prototype AJAX 教程

作者:terry,如若转载,请注明出处:https://www.web176.com/prototype_api/8302.html

(0)
打赏 支付宝 支付宝 微信 微信
terryterry
上一篇 2023年1月25日
下一篇 2023年1月25日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注