开发者

how to use jquery to load from array of pages - in order

I'm grabbing a bunch of links from a page and then pulling in a specific content element from those pages. The code I just created works and does just that.

The problem is because the requests are asynchronous, the elements are not loading up in order. I tried adding a delay but that didn't work.

Do I need to be using .ajax instead of .load? If so, what would this looped append look like with .ajax comma开发者_如何学Cnd? Can you still use a selector with the url? Or is there an effective way to acheive this with .load?

Thanks in advance.

    function runthis() {

var links = $("#article-slide-belt a").map(function() {
                return this.href;
            }).get();

$.each( links, function(i, l){

    $("<div>").load(l + " .gl_left", function() {
          $(".gl_left").append($(this).find(".gl_left").html());
    });

 });

}


You could specify the next link to load on completion of the first request - the code below is not very elegant but it will do what you want

var links
var content_index=0;
$(document).ready( function() {
    links = $("#article-slide-belt a").map( function() {
        return this.href;
    }).get();
    loadContent()
})
function loadContent() {
    if (content_index<links.length) {
        $("div").load(links[content_index] + " .gl_left", function() {
            $(".gl_left").append($(this).find(".gl_left").html());
            content_index++;
            loadContent();
        });
    }
}


Perhaps this: http://plugins.jquery.com/project/ajaxqueue


I tried the synchronous .ajax route. And it comes in correct order but the wait is unbearable. Needs to be readable page while the data is loading in.

$.each( links, function(i, l){

$.ajax({        
     url: l,                         
     async: false,         
     success: function(data){
    var $response=$(data);

    $(".gl_left").append($response.find(".gl_left").html());

    }     
     });

 });
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜