Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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
Jquery 我的getJSON调用随机返回结果,而不是按调用顺序返回结果_Jquery_Json - Fatal编程技术网

Jquery 我的getJSON调用随机返回结果,而不是按调用顺序返回结果

Jquery 我的getJSON调用随机返回结果,而不是按调用顺序返回结果,jquery,json,Jquery,Json,我需要发出多个getJSON请求才能将数据写入HTML文件。这个示例显示了3个请求,但我将以相同的格式添加最多6个请求(可能更多) 我的问题是结果是以随机顺序返回的,而不是按调用顺序返回的。我怀疑他们是按照请求完成的顺序被退回的 我每次都必须按同样的顺序写div 这些值是从getJSON请求返回的,每个请求加上两个实例来自一组本地变量(nwsltrID[0]和nwsltrNames[0]}),这两个变量对每个请求都是唯一的。因此,我附加的HTML由于这两个变量而变为变量(如代码示例所示) 代码示

我需要发出多个
getJSON
请求才能将数据写入HTML文件。这个示例显示了3个请求,但我将以相同的格式添加最多6个请求(可能更多)

我的问题是结果是以随机顺序返回的,而不是按调用顺序返回的。我怀疑他们是按照请求完成的顺序被退回的

我每次都必须按同样的顺序写div

这些值是从
getJSON
请求返回的,每个请求加上两个实例来自一组本地变量(
nwsltrID[0]
nwsltrNames[0]
}),这两个变量对每个请求都是唯一的。因此,我附加的HTML由于这两个变量而变为变量(如代码示例所示)

代码示例:

$.getJSON(url0, function (data) {
utcday =  data[0].createdOn;
ltrDay = moment.utc(utcday).format("DD MMM YY");                           

$('#listDiv').append("<div class= \"ellipsis\" ><div class=\"ltrFolder\" ><a title= \"Archive\" href = \"" + idString3 + nwsltrID[0] + "\"><i class=\"fa fa-folder-o\"></a></i></div><div id=\"" + data[0].id + "\"class= \"ellipsis listTitle\" >" + nwsltrNames[0] + "<br><a title= \"" + data[0].conversation + "\" class = \"addressClick\" id =\"" + url0 + "\"><span class =\"point\" ><i class=\"fa fa-newspaper-o\"></i></span>" + data[0].conversation + "</a><div class=\"ltgrey\" style=\"text-transform:uppercase;padding-top:3px;\">" + ltrDay + "</div></div><div style=\"padding: 0 20px 20px 0; color:#666666;\">" + data[0].textHead + "</div>");   
});

$.getJSON(url1, function (data) {

utcday =  data[0].createdOn;
ltrDay = moment.utc(utcday).format("DD MMM YY");                           

$('#listDiv').append("<div class= \"ellipsis\" ><div class=\"ltrFolder\" ><a title= \"Archive\" href = \"" + idString3 + nwsltrID[1] + "\"><i class=\"fa fa-folder-o\"></a></i></div><div id=\"" + data[0].id + "\"class= \"ellipsis listTitle\" >" + nwsltrNames[1] + "<br><a title= \"" + data[0].conversation + "\" class = \"addressClick\" id =\"" + url1 + "\"><span class =\"point\" ><i class=\"fa fa-newspaper-o\"></i></span>" + data[0].conversation + "</a><div class=\"ltgrey\" style=\"text-transform:uppercase;padding-top:3px;\">" + ltrDay + "</div></div><div style=\"padding: 0 20px 20px 0; color:#666666;\">" + data[0].textHead + "</div>"); 
});

$.getJSON(url2, function (data) {
utcday =  data[0].createdOn;
ltrDay = moment.utc(utcday).format("DD MMM YY");                           

$('#listDiv').append("<div class= \"ellipsis\" ><div class=\"ltrFolder\" ><a title= \"Archive\" href = \"" + idString3 + nwsltrID[2] + "\"><i class=\"fa fa-folder-o\"></a></i></div><div id=\"" + data[0].id + "\"class= \"ellipsis listTitle\" >" + nwsltrNames[2] + "<br><a title= \"" + data[0].conversation + "\" class = \"addressClick\" id =\"" + url2 + "\"><span class =\"point\" ><i class=\"fa fa-newspaper-o\"></i></span>" + data[0].conversation + "</a><div class=\"ltgrey\" style=\"text-transform:uppercase;padding-top:3px;\">" + ltrDay + "</div></div><div style=\"padding: 0 20px 20px 0; color:#666666;\">" + data[0].textHead + "</div>"); 
}); 
$.getJSON(url0,函数(数据){
utcday=数据[0]。createdOn;
ltrDay=时刻utc(utcday).format(“DD-MMM-YY”);
$('#listDiv')。追加(“+nwsltrNames[0]+”
“+nwsltrNames[1]+”
“+nwsltrNames[2]+”
“+data[0]。会话+“+ltrDay+”+data[0]。文本头+”); });
我肯定我正在做一些其他的新手的东西,可以改进和优化。 所以,我渴望听到所有的建议


我希望我已经提供了足够的信息来修复此问题。

您可以链接您的电话:

$.getJSON(url0, function (data) {
    utcday =  data[0].createdOn;
    ltrDay = moment.utc(utcday).format("DD MMM YY");                           

    $('#listDiv').append("<div class= \"ellipsis\" ><div class=\"ltrFolder\" ><a title= \"Archive\" href = \"" + idString3 + nwsltrID[0] + "\"><i class=\"fa fa-folder-o\"></a></i></div><div id=\"" + data[0].id + "\"class= \"ellipsis listTitle\" >" + nwsltrNames[0] + "<br><a title= \"" + data[0].conversation + "\" class = \"addressClick\" id =\"" + url0 + "\"><span class =\"point\" ><i class=\"fa fa-newspaper-o\"></i></span>" + data[0].conversation + "</a><div class=\"ltgrey\" style=\"text-transform:uppercase;padding-top:3px;\">" + ltrDay + "</div></div><div style=\"padding: 0 20px 20px 0; color:#666666;\">" + data[0].textHead + "</div>");
    $.getJSON(url1, function (data) {

        utcday =  data[0].createdOn;
        ltrDay = moment.utc(utcday).format("DD MMM YY");                           

        $('#listDiv').append("<div class= \"ellipsis\" ><div class=\"ltrFolder\" ><a title= \"Archive\" href = \"" + idString3 + nwsltrID[1] + "\"><i class=\"fa fa-folder-o\"></a></i></div><div id=\"" + data[0].id + "\"class= \"ellipsis listTitle\" >" + nwsltrNames[1] + "<br><a title= \"" + data[0].conversation + "\" class = \"addressClick\" id =\"" + url1 + "\"><span class =\"point\" ><i class=\"fa fa-newspaper-o\"></i></span>" + data[0].conversation + "</a><div class=\"ltgrey\" style=\"text-transform:uppercase;padding-top:3px;\">" + ltrDay + "</div></div><div style=\"padding: 0 20px 20px 0; color:#666666;\">" + data[0].textHead + "</div>");
        $.getJSON(url2, function (data) {
            utcday =  data[0].createdOn;
            ltrDay = moment.utc(utcday).format("DD MMM YY");                           

            $('#listDiv').append("<div class= \"ellipsis\" ><div class=\"ltrFolder\" ><a title= \"Archive\" href = \"" + idString3 + nwsltrID[2] + "\"><i class=\"fa fa-folder-o\"></a></i></div><div id=\"" + data[0].id + "\"class= \"ellipsis listTitle\" >" + nwsltrNames[2] + "<br><a title= \"" + data[0].conversation + "\" class = \"addressClick\" id =\"" + url2 + "\"><span class =\"point\" ><i class=\"fa fa-newspaper-o\"></i></span>" + data[0].conversation + "</a><div class=\"ltgrey\" style=\"text-transform:uppercase;padding-top:3px;\">" + ltrDay + "</div></div><div style=\"padding: 0 20px 20px 0; color:#666666;\">" + data[0].textHead + "</div>"); 
        }); 
    });
});
$.getJSON(url0,函数(数据){
utcday=数据[0]。createdOn;
ltrDay=时刻utc(utcday).format(“DD-MMM-YY”);
$('#listDiv')。追加(“+nwsltrNames[0]+”
“+nwsltrNames[1]+”
“+nwsltrNames[2]+”
“+data[0]。会话+“+ltrDay+”+data[0]。文本头+”); }); }); });

AJAX的
A
是异步的:请求并行完成,服务器并行应答,浏览器并行接收响应。每个请求都有自己的速度。

您可以链接您的呼叫:

$.getJSON(url0, function (data) {
    utcday =  data[0].createdOn;
    ltrDay = moment.utc(utcday).format("DD MMM YY");                           

    $('#listDiv').append("<div class= \"ellipsis\" ><div class=\"ltrFolder\" ><a title= \"Archive\" href = \"" + idString3 + nwsltrID[0] + "\"><i class=\"fa fa-folder-o\"></a></i></div><div id=\"" + data[0].id + "\"class= \"ellipsis listTitle\" >" + nwsltrNames[0] + "<br><a title= \"" + data[0].conversation + "\" class = \"addressClick\" id =\"" + url0 + "\"><span class =\"point\" ><i class=\"fa fa-newspaper-o\"></i></span>" + data[0].conversation + "</a><div class=\"ltgrey\" style=\"text-transform:uppercase;padding-top:3px;\">" + ltrDay + "</div></div><div style=\"padding: 0 20px 20px 0; color:#666666;\">" + data[0].textHead + "</div>");
    $.getJSON(url1, function (data) {

        utcday =  data[0].createdOn;
        ltrDay = moment.utc(utcday).format("DD MMM YY");                           

        $('#listDiv').append("<div class= \"ellipsis\" ><div class=\"ltrFolder\" ><a title= \"Archive\" href = \"" + idString3 + nwsltrID[1] + "\"><i class=\"fa fa-folder-o\"></a></i></div><div id=\"" + data[0].id + "\"class= \"ellipsis listTitle\" >" + nwsltrNames[1] + "<br><a title= \"" + data[0].conversation + "\" class = \"addressClick\" id =\"" + url1 + "\"><span class =\"point\" ><i class=\"fa fa-newspaper-o\"></i></span>" + data[0].conversation + "</a><div class=\"ltgrey\" style=\"text-transform:uppercase;padding-top:3px;\">" + ltrDay + "</div></div><div style=\"padding: 0 20px 20px 0; color:#666666;\">" + data[0].textHead + "</div>");
        $.getJSON(url2, function (data) {
            utcday =  data[0].createdOn;
            ltrDay = moment.utc(utcday).format("DD MMM YY");                           

            $('#listDiv').append("<div class= \"ellipsis\" ><div class=\"ltrFolder\" ><a title= \"Archive\" href = \"" + idString3 + nwsltrID[2] + "\"><i class=\"fa fa-folder-o\"></a></i></div><div id=\"" + data[0].id + "\"class= \"ellipsis listTitle\" >" + nwsltrNames[2] + "<br><a title= \"" + data[0].conversation + "\" class = \"addressClick\" id =\"" + url2 + "\"><span class =\"point\" ><i class=\"fa fa-newspaper-o\"></i></span>" + data[0].conversation + "</a><div class=\"ltgrey\" style=\"text-transform:uppercase;padding-top:3px;\">" + ltrDay + "</div></div><div style=\"padding: 0 20px 20px 0; color:#666666;\">" + data[0].textHead + "</div>"); 
        }); 
    });
});
$.getJSON(url0,函数(数据){
utcday=数据[0]。createdOn;
ltrDay=时刻utc(utcday).format(“DD-MMM-YY”);
$('#listDiv')。追加(“+nwsltrNames[0]+”
“+nwsltrNames[1]+”
“+nwsltrNames[2]+”
“+data[0]。会话+“+ltrDay+”+data[0]。文本头+”); }); }); });

AJAX的
A
是异步的:请求并行完成,服务器并行应答,浏览器并行接收响应。每个请求都有自己的速度。

这个函数是否可以异步工作?因此,它触发了这三个函数,完成的函数的回调(不管是谁)开始追加:o


您可以让这些函数在同步模式下工作

是否该函数可以异步工作?因此,它触发了这三个函数,完成的函数的回调(不管是谁)开始追加:o


您可以让这些函数在同步模式下工作

,也可以从#listDiv中的单独div开始

$('#listDiv').append('');
$.getJSON(url0,函数(数据){
utcday=数据[0]。createdOn;
ltrDay=时刻utc(utcday).format(“DD-MMM-YY”);
$('#listDiv.ellipsis0').append('+nwsltrNames[0]+'
'+data[0].conversation+'+ltrDay+'+data[0].textHead); }); $.getJSON(url1,函数(数据){ utcday=数据[0]。createdOn; ltrDay=时刻utc(utcday).format(“DD-MMM-YY”); $('#listDiv.ellipss1').append('.'+数据[0].textHead); }); $.getJSON(url2,函数(数据){ utcday=数据[0]。createdOn; ltrDay=时刻utc(utcday).format(“DD-MMM-YY”); $('#listDiv.ellipss2').append('.'+数据[0].textHead); });
或者您可以在#listDiv中使用单独的div开始

$('#listDiv').append('');
$.getJSON(url0,函数(数据){
utcday=数据[0]。createdOn;
ltrDay=时刻utc(utcday).format(“DD-MMM-YY”);
$('#listDiv.ellipsis0').append('+nwsltrNames[0]+'
'+data[0].conversation+'+ltrDay+'+data[0].textHead); }); $.getJSON(url1,函数(数据){ utcday=数据[0]。createdOn; ltrDay=时刻utc(utcday).format(“DD-MMM-YY”); $('#listDiv.ellipss1').append('.'+数据[0].textHead); }); $.getJSON(url2,函数(数据){ utcday=数据[0]。createdOn; ltrDay=时刻utc(utcday).format(“DD-MMM-YY”); $('#listDiv.ellipss2').append('.'+数据[0].textHead); });
要订购AJAX查询,您可以使用$。当函数-:

下面是给你的例子:

$.when( $.getJSON(url0), $.getJSON(url1), $.getJSON(url2) ).done( function() {
    $.each(arguments, function(index, result) {
        var data = result[0];
        utcday =  data[0].createdOn;
        ltrDay = moment.utc(utcday).format("DD MMM YY");

        $('#listDiv').append(... + nwsltrID[index] + .... + nwsltrNames[index]  + ... );
    });
});

无论有多少查询,只要将其作为$.when函数的参数添加即可

要订购AJAX查询,可以使用$。当函数-:

下面是给你的例子:

$.when( $.getJSON(url0), $.getJSON(url1), $.getJSON(url2) ).done( function() {
    $.each(arguments, function(index, result) {
        var data = result[0];
        utcday =  data[0].createdOn;
        ltrDay = moment.utc(utcday).format("DD MMM YY");

        $('#listDiv').append(... + nwsltrID[index] + .... + nwsltrNames[index]  + ... );
    });
});

无论有多少查询,只要将其作为$.when函数的参数添加即可

谢谢!这似乎解决了订购问题。现在,我看到div是在请求完成时追加的,而不是在所有请求完成时追加的。这很可能发生在以前,只是没有被注意到。如何等待所有请求完成?如果$('#listDiv')在开始时为空,可以将其隐藏
$('#listDiv').hide().append(…
并在最后一次响应
$('#listDiv').append(…).show()
。谢谢!这似乎解决了排序问题。现在,我看到div是在请求完成时追加的,而不是在所有请求完成时追加的。这可能发生在之前,只是没有注意到。我如何等待所有请求完成?如果$('#listDiv')在开始时为空,可以将其隐藏
$(“#listDiv”).hide().append(…
并在最后一次响应中显示它(“#listDiv”).a