【发布时间】:2015-12-11 05:37:39
【问题描述】:
我正在使用以下代码向 PHP 脚本发出请求:
$.ajax({
method: "POST",
url: "myAPI.php",
data: {
orderById: 2,
action: 'returnStuff',
},
success: function(data){
$.each(data.data, function(key, value) {
var $targetToMove = $('.shape.'+value.attr_name);
//if element already exists on page, move it to the end of the container
if($('.'+value.xml_name).length){
$('.container').append($targetToMove);
}
});
}
});
这是我返回数据的简化示例
{"data":{"0":{"id":"1","name":"This","color":"blue"},
"1":{"id":"2","name":"That","color":"red"},
"2":{"id":"3","name":"whatever","color":"blue"}}}
如果 orderById 等于 1,则数据按 id 从低到高按数字返回。如果它等于 2,则从最高到最低以数字形式返回,如下所示:
{"data":{"0":{"id":"3","name":"whatever","color":"blue"},
"1":{"id":"2","name":"That","color":"red"},
"2":{"id":"1","name":"This","color":"blue"}}}
这个想法是API按照我想要的顺序返回数据,然后在ajax调用成功时,元素按照返回的数据对象的顺序重新排列在页面上。
这符合我在 Firefox 中的意图,但在 Chrome 中,每当我在控制台中记录成功的数据时,顺序总是相同的,尽管控制台指示我的 API 的响应顺序正确。
我错过了什么?我不知道这是缓存问题还是我只是忽略了我的 javascript 中的某些内容。
【问题讨论】:
标签: javascript php jquery ajax google-chrome