我可能在阵列中有近40个元素。偶尔,数组按照我想要的顺序进行排序,但在刷新网页后,即使信息本身保持不变并且排序过程相同,排序顺序也会完全改变。
我注意到我在控制台中收到“2000条消息未被记录”,所以我认为记录器过载了。
因此,我的第一个问题是:执行javascript执行是否有任何'超时',例如在php脚本中?
如果没有,我的代码会出现什么问题?
arr.sort(function (a, b) {
var a_freq = a["first"],
b_freq = b["first"],
a_imp = a["second"],
b_imp = b["second"],
a_ldone = a["third"],
b_ldone = b["third"];
var imp_diff = (a_imp - b_imp) / 10;
var relation;
if (imp_diff == 0){
if(b_ldone > a_ldone){
return 1;
}else if(b_ldone == a_ldone){
if(a_freq >= b_freq){
return 1;
}else{
return -1;
}
}else{
return -1;
}
}else if(imp_diff > 0){
if(b_ldone > imp_diff && a_ldone - b_ldone > imp_diff){
return 1;
}
return -1;
}else{
imp_diff = imp_diff * (-1);
if(a_ldone > imp_diff && b_ldone - a_ldone > imp_diff){
return -1;
}
return 1;
}
}
});
当我返回1 时,我是在推进元素'a'还是'b'?
正如我所说,每次刷新网页时值都保持不变但由于某种原因订单发生变化......但在每次刷新中,最终数组的值保存在缓存中,因此在刷新中排序的新数组是先前已排序的数组,但数组中每个对象的值保持不变...任何原因都可以改变,有时是如此突然? javascript进程是否只是暂停而没有完全整理整个数组?这是什么原因?正如我所写的,我必须在阵列中有大约40/50个元素......这太难处了吗?还有其他可能的主题吗?