0

私はこのコードをよく知っています:

$.ajax({
url:'http://api.rottentomatoes.com/api/public/v1.0/lists/dvds/new_releases.json?page_limit=16&page=1&country=us&apikey=k4uaze4937mw3hf82upstxqw',
type:'GET',
dataType:'jsonp',
success:function(data){
    var movies = data.movies;
    $.each(movies, function() {
    $('#datalist').append('<li><a><img src='+this.posters.thumbnail+' class="ui-li-thumb"><h3 class="ui-li-heading">'+this.title+'</h3><p class="ui-li-desc">DVD Date: '+this.release_dates.dvd+'</p></a></li>').listview('refresh');    
    //get data from ul

    });
},

error: function(xhr, textStatus, errorThrown){
        alert('request failed :'+xhr);
                    alert('request failed :'+textStatus);
    alert('request failed :'+errorThrown);
}
}); 

問題は、このコードが非同期で動作することです。そして、私は使いたいです

var lis = new Array();

// Iterate through the <li> items
$("#tag-cloud-list").children("li").each(function()
{
    lis.push($(this).text());
});

リストの項目を取得する (データが変更されたかどうかを判断できるようにするため)。問題は、このコードを実行する前にデータが到着しないため (非同期であるため)、リストが空であることです。

そのため、API から JSON を取得するには、コードの同期バージョンが必要です。私は基本的にこのコードを最初に実行し、他のすべてはその後に実行します。そうすれば、値を確認するときに ul が入力されていることが確実にわかります。

ajax 呼び出しで async:false を試しましたが、何もしていないようです。

私がしたいこと: ページを同期して入力し、30 秒ごとに非同期コードを実行して、同期スクリプトによって入力された値をチェック/更新します。それが私が両方を必要とする理由です。

4

0 に答える 0