jquery - 如何阻止 Chrome 和 Opera 通过 Index ASC 对 JSON 对象进行排序?

标签 jquery json google-chrome opera

我有一个问题。

使用 ajax 我发送了一个格式正确的 JSON 对象:

            $.ajax({
                type: "POST", 
                url: SITE_URL+'/data.php',
                dataType: "json",
                data: { ajax: 1 },
                success: function(data) {
                    console.log(data);
                }
            });

然而,Opera 和 Chrome 虽然接收到相同的对象,但打印出的对象顺序不正确,似乎它们都执行了 ID 号排序,而不是单独放置它!

有没有办法停止这种自动排序?

编辑,在发现它是按索引号排序后,我认为最好的方法可能是不使用索引来存储 object_id,而是存储我想要订购对象的 id 号。

但是我仍然想知道是否有办法停止排序。

谢谢

Edit2,我只想指出,我将采用不同的方式来实现这一点,因为我觉得我正在用这种方法滥用对象。但是我仍然想了解为什么 Opera 和 Chrome 认为更改我的对象 ID 的顺序是他们的权利:

问题是我试图节省处理能力,假设我们有人有 ID,

1.John、2.Frank 和 3.Sally。然而,这些人中的每一个都有一个高属性集(和其他东西)。 1.John.180、2.Frank.220、3.Sally.150。为了节省处理时间,我要求人们的结果按高度排序,这样我就得到了一个包含其他属性的 2、1、3 数组。我将这个数组 JSON 并发送到浏览器。

现在 FF 将保留新订单 People[1] 仍然是 John,但在 For n as person 循环中它们会出现故障。

如果我无法解决这个问题,我将不必在 SQL 阶段进行排序,并在 JS 阶段添加额外的循环和排序到一个数组中,尽管我想避免对浏览器造成更多压力,因为它已经一个Js重页。

非常感谢

最佳答案

遇到同样的问题,按照 dmc 的解决方案,只是在 int 值前面添加了一个空格以使其成为字符串。

使用空格而不是另一个非数字字符的优点是随后的 POST 值可以直接在 mySQL 搜索子句中使用,而无需再次删除。

关于jquery - 如何阻止 Chrome 和 Opera 通过 Index ASC 对 JSON 对象进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5020699/

相关文章:

google-chrome - 无法使用 Chrome Experimental Devtools API

google-chrome - Chrome 扩展;在新选项卡中打开 popup.html 中的链接

javascript - jquery 平滑滚动到 div - 奇怪的行为

php - Ajax 未发布到 div

jquery - 使用 jQuery,在悬停在不同元素上时更改 SVG 颜色

javascript - 使用ngif ionic4过滤ngfor中的json数据

javascript - 从 JSON 到关联数组到 html 表

css - 谷歌地图 v3 在 Chrome 中使用带基础的水平灰线初始化

jquery - Microsoft JScript 运行时错误 : Unable to set value of the property 'control' : object is null or undefined

javascript - 从 HTML 中的单独 Javascript 文件调用函数不起作用