2016-09-09 14 views
0

ajax呼び出しがトリガされ、ajaxで非表示にされる前に表示されるはずのajaxローダーgifがありますが、要素は表示されません。要素がjQuery ajaxコールの前に表示されない

inspectを使用してデバッグし、ステップバイステップで実行すると、その要素が表示されます。

$("#ajaxLoader").show(); 
    $('.spn-invalid-zip').hide(); 
    $("#txtZipCode").removeClass("input-validation-error-style"); 
    if ($("#inValidZipCode").length <= 0) { 
     $($('#txtZipCode').parent()).append("<span id='inValidZipCode' class='spn-invalid-zip input-validation-error-style'></span>"); 
    } 
    var valZipCode = value; 
    if (valZipCode.length < 5) { 
     resetCountyFields(); 
     return false; 
    } 
    var zipCodeResult = false; 
    $.ajax({ 
     url: path, 
     type: "POST", 
     data: { zipcode: valZipCode }, 
     async: false, 
     success: function (data) { 
      .... 
     }, 
     complete: function() { 
      $("#ajaxLoader").hide(); 
     } 
    }); 
+2

あなたは 'async:false'を使っているので表示されません。それを除く;使用するのはひどい*練習です。だからあなたのブラウザは、あなたにそれについてのコンソールの警告を与えるのです –

+0

@RoryMcCrossanトリックをしてくれてありがとう – RandomUser

+1

良いもの。私はあなたの説明の答えとしてそれを追加しました –

答えて

2

あなたのAJAX呼び出しでasync: falseを使用しているため問題があります。これにより、リクエストの転送中にブラウザのUIスレッドが更新されなくなり、表示/非表示の画像がユーザーの画面上で更新されることはありません。あなたはAJAXのオプションからそのプロパティを削除する場合は、あなたのコードは正常に動作します:

$("#ajaxLoader").show(); 

// your logic here: 

$.ajax({ 
    url: path, 
    type: "POST", 
    data: { zipcode: valZipCode }, 
    success: function (data) { 
     .... 
    }, 
    complete: function() { 
     $("#ajaxLoader").hide(); 
    } 
}); 

falseからasyncプロパティを設定要求の同期を行うために使用され、あなたが取得するためにコールバック関数を使用する必要はありませんように要求内のデータを更新し、要求が終了するまでUIが更新されないようにします。しかし、実際には悪い習慣です。コンソールは、要求が完了するまでブラウザがユーザに見えるようになるので、その使用について警告します。要求が完了するまで数秒かかる場合があります。

UIが更新される前にコードになる特定の状況でのみ有効です(onbeforeunload)。それ以外は決して使用しないでください。

+0

このプロパティの使用を知っていて、いつ使用できますか? – RandomUser

+2

リクエストを同期させるために使用されます。コールバック関数を使用してリクエスト内のデータを取得する必要がなく、リクエストが終了するまでUIが更新されません。しかし、実際には悪い習慣です。ブラウザは、ブラウザが完全になるまで掛かっているとユーザに見えるように、その使用について警告します。これは、UIが更新される前にcode *が完了する特定の状況でのみ有効です。例えば、 'onbeforeunload'などです。それ以外のものは決して使用しないでください。 –

+0

しかし、私は呼び出しの前にshow要素の文を持っていますか? – RandomUser

関連する問題