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