就 javascript 排序代碼的修改

恩,今天在進行排序的時候,排序一個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倍。。

因此。。給我很大的震驚,本身的這個糟糕的代碼運行了這麼長時間,可想而知.....

因而,(..................)

相關文章
相關標籤/搜索