0

ajax リクエストが処理されるまで、ドロップダウンとブラウザがロックされるという問題があります。JSON Ajax リクエストでは ASYNC を False に設定する必要があることを知っているので、Ajax リクエストが受信されるまでドロップダウンとページがロックされないようにコードを変更していただけると助かります。

ここで確認できます:

http://bit.ly/16QN1lA

5秒追加しました。問題をより明確にするために data.php ファイルにスリープします。

4

3 に答える 3

0

これを行う別の方法を提案させてください。

$.get(url, function(res){
 data = JSON.parse(res);
 $(data).each(function(k,v){ 
  $('#makes').append( html )
 }
}
于 2013-10-31T22:46:30.783 に答える
0

非同期 AJAX でエラーが発生する理由は、サーバーから応答を受け取る前に、関数がすぐに返されるためです。したがって、ガベージデータを呼び出しJSON.parse()ているため、表示されているエラーが発生しています。

解決策は、サーバーからの応答を取得したに解析を行うことです。

if(year !=""){
    //Get vehicle json and store into vehicles_json
    getJson(
        js_base_url,
        function(makes_json) {
             //Set makes equal to makes dropdown
            var makes = $("#make");
            //empty dropdown
            makes.empty();

            var makes_array = [];
            //loop through makes_json json
            $.each(makes_json, function() {
                    makes_array.push('<option value="', this.model_make_display, '">', this.model_make_display, '</option>');
            });
            makes.html(makes_array.join(''));
         }
    );
}

function getJson(url, callBack) {
  $.ajax({
     type: 'GET',
     url: url,
     dataType: 'json',
     global: false,
     success: function(json_response) {
         callBack(json_response);
     }
 });
}
于 2013-10-31T22:55:31.477 に答える