javascript中的多个GET请求

时间:2014-11-23 00:20:16

标签: javascript php curl

我试图在我的项目中向4个不同的php文件发出多个get请求,但是在所有请求都恢复成功之前我不知道它们会附加到表中。我已经尝试过处理我的所有请求,但我想知道除了必须提出请求之外是否有更快的方法可以做到这一点?

我目前的代码:

    var content;
    var time_running;
    var next_episode;
    var air_date;
    $.get("functions_tv_name.php?name="+n, function(data){
            content = data;
            $.get("functions.php?name="+n, function(data){
            time_running = data;
                $.get("next_episode.php?name="+n, function(data){
                next_episode = data;    
                    $.get("show_air_time.php?name="+n, function(data){
                     air_date = data;
                     $('#tvResults').append('<tr><td>' + content + '</td><td>' + time_running + '</td><td>' + next_episode + '</td><td>' + air_date + '</td></tr>');
                    });
               });
          });
    });

1 个答案:

答案 0 :(得分:0)

你想要的是立即解雇所有人。让每个$ .get处理程序执行以下操作:

  1. 保存其结果,以便所有$ .get处理程序
  2. 都可以访问它
  3. 检查是否所有$ .get都已解决(成功与否)
  4. 您可以通过跟踪对象中每个$ .get的状态并将该对象检查为每个 $ .get得到解决来手动执行此操作。例如。这是一个非常粗略的大纲

    var states = {};
    function all_done() {... check states, returns boolean }
    // first req
    states["req#1"] = {state:"pending", value:null}
    $.get("req-1", function(...){
        ...
        states["req#1"].value = "..."
        states["req#1"].state = "resolved"
        if (all_done()) ...
    }, error handler....)
    // second req -- same thing
    

    HTH