jQuery 中 ajaxSuccess() 和 ajaxComplete() 函数的区别是什么?


ajaxSuccess() 方法

ajaxSuccess( callback ) 方法附加一个函数,每当 AJAX 请求成功完成时执行该函数。这是一个 Ajax 事件。

以下是此方法使用到的所有参数的描述:

  • callback - 要执行的函数。事件对象、XMLHttpRequest 和用于该请求的设置将作为参数传递给回调函数。

假设我们在result.html 文件中具有以下 HTML 内容

<h1>THIS IS RESULT...</h1>

示例

以下示例显示了此方法的用法

在线演示

<html>

   <head>
      <title>The jQuery Example</title>
      <script type = "text/javascript"
         src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
       
      <script type = "text/javascript" language = "javascript">
         $(document).ready(function() {
           
            /* Global variable */
            var count = 0;

            $("#driver").click(function(event){
               $('#stage0').load('result.html');
            });
               
            /* Gets called when request starts */
            $(document).ajaxStart(function(){
               count++;
               $("#stage1").html("<h1>Starts, Count :" + count + "</h1>");
            });
               
            /* Gets called when request is sent */
            $(document).ajaxSend(function(evt, req, set){
               count++;
               $("#stage2").html("<h1>Sends, Count :" + count + "</h1>");
               $("#stage2").append("<h1>URL :" + set.url  + "</h1>");
            });
               
            /* Gets called when request completes */
            $(document).ajaxComplete(function(event,request,settings){
               count++;
               $("#stage3").html("<h1>Completes,Count:" + count + "</h1>");
            });
               
            /* Gets called when request is stopped */
            $(document).ajaxStop(function(event,request,settings){
               count++;
               $("#stage4").html("<h1>Stops, Count :" + count + "</h1>");
            });
               
            /* Gets called when all request completes successfully */
            $(document).ajaxSuccess(function(event,request,settings){
               count++;
               $("#stage5").html("<h1>Success,Count :" + count + "</h1>");
            });
               
         });
      </script>
   </head>
   
   <body>
   
      <p>Click on the button to load result.html file:</p>
       
      <div id = "stage0" style = "background-color:blue;">
         STAGE - 0
      </div>
       
      <div id = "stage1" style = "background-color:blue;">
         STAGE - 1
      </div>
       
      <div id = "stage2" style = "background-color:blue;">
         STAGE - 2
      </div>
       
      <div id = "stage3" style = "background-color:blue;">
         STAGE - 3
      </div>
       
      <div id = "stage4" style = "background-color:blue;">
         STAGE - 4
      </div>
       
      <div id = "stage5" style = "background-color:blue;">
         STAGE - 5
      </div>
       
      <input type = "button" id = "driver" value="Load Data" />
       
   </body>
   
</html>

ajaxComplete() 方法

ajaxComplete( callback ) 方法附加一个函数,每当 AJAX 请求完成时执行该函数。

以下是此方法使用到的所有参数的描述:

  • callback - 要执行的函数。XMLHttpRequest 和用于该请求的设置将作为参数传递给此函数。

假设我们在result.html 文件中具有以下 HTML 内容:

<h1>THIS IS RESULT...</h1>

示例

以下示例显示了此方法的用法

在线演示

<html>

   <head>
      <title>The jQuery Example</title>
      <script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
       
      <script>
         $(document).ready(function() {
           
            $("#driver").click(function(event){
               $('#stage1').load('result.html');
            });

            $(document).ajaxComplete(function(event, request, settings){
               $("#stage2").html("<h1>Request Complete.</h1>");
            });
               
         });
      </script>
   </head>

   <body>
   
      <p>Click on the button to load result.html file:</p>
       
      <div id = "stage1" style = "background-color:blue;">
         STAGE - 1
      </div>
       
      <div id = "stage2" style = "background-color:blue;">
         STAGE - 2
      </div>
       
      <input type = "button" id = "driver" value = "Load Data" />
       
   </body>  
</html>

更新于:2020年6月15日

301 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告