恩,今天在进行排序的时候,排序一个table的时候,虽然仍是使用原来的javascript 排序算法,可是,发现一个很明显的问题,就是同一个排序操做,在FF中很快,到是在IE8.0中很慢,那么 IE6.0可想而知...因而下决心必须改。。javascript
排序过程 收集--tablerow进入一个数组----->排序算法------>组织数据重现。java
由于这个 算法中使用了jquery..因此,算是一个结合的的吧,若是哪位同志须要代码 加 QQ 776455616 我发给你。jquery
首先是原来的代码算法
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对象ip
2 这么小的操做。原本直接能够经过原生的javascript 代码解决为何要想装城 jquery对象,而后再获得值么?看来有的社会,仍是不会灵活 使用,小的操做直接使用原生的javascript 就行。io
因而,修改上面的2个缺陷。table
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倍。。
因此。。给我很大的震惊,本身的这个糟糕的代码运行了这么长时间,可想而知.....
因而,(..................)