Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我如何处理jQuery.Ajax(数据类型:JSON)中的时间响应?_Javascript_Jquery_Ajax_Json - Fatal编程技术网

Javascript 我如何处理jQuery.Ajax(数据类型:JSON)中的时间响应?

Javascript 我如何处理jQuery.Ajax(数据类型:JSON)中的时间响应?,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,我有四个这样的函数。他们每个人都在工作 $.ajax({ url: sectoresURL, context: document.body, timeout: 10000 // 1000 MS = 10 Seconds }).done(function(jsonSectores) { // Blablabla... }); 但当我必须在屏幕上显示它们时,最后一个函数比第一个函数先显示。。。(

我有四个这样的函数。他们每个人都在工作

$.ajax({
         url: sectoresURL,
         context: document.body,
         timeout: 10000 // 1000 MS = 10 Seconds
       }).done(function(jsonSectores) {
           // Blablabla...
       });
但当我必须在屏幕上显示它们时,最后一个函数比第一个函数先显示。。。(是的,这是正确的,因为它花费的时间更少)

例如:

Get Http://... 200 ms
Get Http://... 150 ms
Get Http://... 100 ms
Get Http://... 50 ms

那么,如何处理呢?我想在screem上显示第一个函数,然后是第二个函数,…,等等。

根据您想要的顺序创建依赖的ajax调用

$.ajax({
        url: sectoresURL, //First Call
        context: document.body,
        success: function(data){
            $.ajax({
                url: "example/",// Second call
                data: 'page='+a,
                success: function(data){
                      //Call your 3rd function if you want and so on
               });
});

根据您想要的顺序创建相关的ajax调用

$.ajax({
        url: sectoresURL, //First Call
        context: document.body,
        success: function(data){
            $.ajax({
                url: "example/",// Second call
                data: 'page='+a,
                success: function(data){
                      //Call your 3rd function if you want and so on
               });
});

根据您想要的顺序创建相关的ajax调用

$.ajax({
        url: sectoresURL, //First Call
        context: document.body,
        success: function(data){
            $.ajax({
                url: "example/",// Second call
                data: 'page='+a,
                success: function(data){
                      //Call your 3rd function if you want and so on
               });
});

根据您想要的顺序创建相关的ajax调用

$.ajax({
        url: sectoresURL, //First Call
        context: document.body,
        success: function(data){
            $.ajax({
                url: "example/",// Second call
                data: 'page='+a,
                success: function(data){
                      //Call your 3rd function if you want and so on
               });
});

jQuery的延期本质上是一种承诺。利用这一事实

您希望尽可能早地执行所有ajax方法,以便给用户带来最小的延迟:

var p1, p2, p3, p4;
p1 = $.ajax(...);
p2 = $.ajax(...);
p3 = $.ajax(...);
p4 = $.ajax(...);
但是您还需要他们的回调等待,直到前面的ajax请求也完成

您可以通过以下方式执行此操作:


警告一句:


如果以这种方式构造代码,并且任何承诺都被拒绝,请确保适当地处理失败状态。请求超时只需要一点网络延迟,整个承诺链就会失败。

jQuery的延迟本质上是一种承诺。利用这一事实

您希望尽可能早地执行所有ajax方法,以便给用户带来最小的延迟:

var p1, p2, p3, p4;
p1 = $.ajax(...);
p2 = $.ajax(...);
p3 = $.ajax(...);
p4 = $.ajax(...);
但是您还需要他们的回调等待,直到前面的ajax请求也完成

您可以通过以下方式执行此操作:


警告一句:


如果以这种方式构造代码,并且任何承诺都被拒绝,请确保适当地处理失败状态。请求超时只需要一点网络延迟,整个承诺链就会失败。

jQuery的延迟本质上是一种承诺。利用这一事实

您希望尽可能早地执行所有ajax方法,以便给用户带来最小的延迟:

var p1, p2, p3, p4;
p1 = $.ajax(...);
p2 = $.ajax(...);
p3 = $.ajax(...);
p4 = $.ajax(...);
但是您还需要他们的回调等待,直到前面的ajax请求也完成

您可以通过以下方式执行此操作:


警告一句:


如果以这种方式构造代码,并且任何承诺都被拒绝,请确保适当地处理失败状态。请求超时只需要一点网络延迟,整个承诺链就会失败。

jQuery的延迟本质上是一种承诺。利用这一事实

您希望尽可能早地执行所有ajax方法,以便给用户带来最小的延迟:

var p1, p2, p3, p4;
p1 = $.ajax(...);
p2 = $.ajax(...);
p3 = $.ajax(...);
p4 = $.ajax(...);
但是您还需要他们的回调等待,直到前面的ajax请求也完成

您可以通过以下方式执行此操作:


警告一句:


如果以这种方式构造代码,并且任何承诺都被拒绝,请确保适当地处理失败状态。只需要一点网络延迟,请求就会超时,整个承诺链就会失败。

考虑使用
$.when()

根据,当接受多个承诺并返回类似承诺的对象时。传递给
.then()
的成功回调将在所有承诺都已解决后使用传递给
.when()
的承诺值进行调用

为了完整起见,我说,
$.when()
返回一个类似承诺的对象,因为成功处理程序对提供给
$.when()
的每个承诺都使用一个参数。真正的承诺只有一个价值

无论如何,这里有一个例子:

$.when(
 $.ajax({
  url: url,
  context: document.body,
  timeout: 10000
 }),
 $.ajax({
  url: url,
  context: document.body,
  timeout: 10000
 })
).then(
 function (first, second) {
  console.log("The first result is: " + first[0]);
  console.log("The second result is: " + second[0]);
 },
 function(e) {
  console.log("Something happened: " + e);
 }
);

这种方法比链接更可取,因为AJAX请求将并行运行。

考虑使用
$.when()

根据,当接受多个承诺并返回类似承诺的对象时。传递给
.then()
的成功回调将在所有承诺都已解决后使用传递给
.when()
的承诺值进行调用

为了完整起见,我说,
$.when()
返回一个类似承诺的对象,因为成功处理程序对提供给
$.when()
的每个承诺都使用一个参数。真正的承诺只有一个价值

无论如何,这里有一个例子:

$.when(
 $.ajax({
  url: url,
  context: document.body,
  timeout: 10000
 }),
 $.ajax({
  url: url,
  context: document.body,
  timeout: 10000
 })
).then(
 function (first, second) {
  console.log("The first result is: " + first[0]);
  console.log("The second result is: " + second[0]);
 },
 function(e) {
  console.log("Something happened: " + e);
 }
);

这种方法比链接更可取,因为AJAX请求将并行运行。

考虑使用
$.when()

根据,当接受多个承诺并返回类似承诺的对象时。传递给
.then()
的成功回调将在所有承诺都已解决后使用传递给
.when()
的承诺值进行调用

为了完整起见,我说,
$.when()
返回一个类似承诺的对象,因为成功处理程序对提供给
$.when()
的每个承诺都使用一个参数。真正的承诺只有一个价值

无论如何,这里有一个例子:

$.when(
 $.ajax({
  url: url,
  context: document.body,
  timeout: 10000
 }),
 $.ajax({
  url: url,
  context: document.body,
  timeout: 10000
 })
).then(
 function (first, second) {
  console.log("The first result is: " + first[0]);
  console.log("The second result is: " + second[0]);
 },
 function(e) {
  console.log("Something happened: " + e);
 }
);

这种方法比链接更可取,因为AJAX请求将并行运行。

考虑使用
$.when()

根据,当接受多个承诺并返回类似承诺的对象时。传递给
.then()
的成功回调将在所有承诺都已解决后使用传递给
.when()
的承诺值进行调用

为了完整起见,我说,
$.when()
返回一个类似承诺的对象,因为成功处理程序对提供给
$.when()
的每个承诺都使用一个参数。真正的承诺只有一个价值

无论如何,这里有一个例子:

$.when(
 $.ajax({
  url: url,
  context: document.body,
  timeout: 10000
 }),
 $.ajax({
  url: url,
  context: document.body,
  timeout: 10000
 })
).then(
 function (first, second) {
  console.log("The first result is: " + first[0]);
  console.log("The second result is: " + second[0]);
 },
 function(e) {
  console.log("Something happened: " + e);
 }
);

这种方法比链接更可取,因为AJAX请求将并行运行。

为什么投反对票?#1嵌套回调引入了一些改进,请解释一下,以便我改进#2这种格式意味着每个ajax请求都会成功