就 javascript 排序代码的修改

恩,今天在进行排序的时候,排序一个table的时候,虽然还是使用原来的javascript 排序算法,但是,发现一个很明显的问题,就是同一个排序操作,在FF中很快,到是在IE8.0中很慢,那么 IE6.0可想而知...于是下决心必须改。。

排序过程    收集--tablerow进入一个数组----->排序算法------>组织数据重现。

因为这个 算法中使用了jquery..所以,算是一个结合的的吧,如果哪位同志需要代码 加 QQ 776455616 我发给你。

首先是原来的代码

function fn_mulSort(colid,tr)
{
return function fn_strSort(row1,row2)
{
var v1=$(row1).find("td").eq(colid).text();
var v2=$(row2).find("td").eq(colid).text();

row1,row2 其实就是 tablerow 然后,我用 colid 是要排序列的index,我用 v1,v2 盛放 在列中得到的值.....

首先这里有2个缺陷

1  每次比较都要实例化 一个 var v1 v2对象

2 这么小的操作。本来直接可以通过原生的javascript 代码解决为什么要想装城 jquery对象,然后再得到值么?看来有的社会,还是不会灵活 使用,小的操作直接使用原生的javascript 就行。

于是,修改上面的2个缺陷。

v1=row1.cells[colid].innerHTML;
v2=row2.cells[colid].innerHTML;
if(v1==null||v1==""||v1=="0"||v1=="0.00"||v1=="0.0")
{
v1=0.1;
}
if(v2==null||v2==""||v2=="0"||v2=="0.00"||v2=="0.0")
{
v2=0.1;
}

因为 还发现一个事情,就是如果cell中是 为零 或是空的话,那么排序只会移动那些不是0的值,于是,可以现将其复制为一个 floor...然后进行比较。

 

于是 重新代码 保存之后,于是,据我估计,在IE8.0 排序速度 至少 提高了3倍。。

所以。。给我很大的震惊,自己的这个糟糕的代码运行了这么长时间,可想而知.....

于是,(..................)

你可能感兴趣的:(JavaScript,jquery)