这几天做了这样一个功能,将表格内容按照大小顺序排列,哇O(∩_∩)O哈哈~,看起来很简单,于是我就写了如下代码:
var the_length = $(".my_stock_list").length;
var the_stocks = $(".my_stock_list");
for(j = 0;j<the_length;j++){
for(i = the_length; i > j;i--){
if(the_stocks.eq(i).attr("alt") - the_stocks.eq(i-1).attr("alt") > 0){
the_stocks.eq(i).after(the_stocks.eq(i-1));//数值小的放在后面
};
}
}
嗯!思路很明确,数值小的用after排到后面....test...火狐下一切正常,可ie6、7下却跑不起来了o_O!
我怒了,如此简单程序ie都吃不消?
上网一查,才知道是我少见多怪了,ie下对class的查询是要遍历整个Dom树的,整个?对是整个!我的length == 50啊,我对Dom树遍历了1250遍啊!!!!!!!
这个case让我对js性能提高有了更进一步的了解,以前编程过程中总是喜欢对Dom树进行操作,真把他当成树了,取东西,放东西啥都往上整,这样多直观方便啊,没想到竟然有如此大的效率隐患,以前很少用js对象的,以前以为,要想保证唯一性,要处理js对象,又要处理dom对象,多麻烦啊.....又整理了下思路,为什么不只处理js对象,再重新生成一遍呢,都是对Dom 的改变,对整体刷新的改变可能只需一次,但对元素刷新的改变却有可能有很多次!
经过此劫,我开始review我的代码,为自己的无知赎罪-_-!
对了,附上新代码:
var the_length = stockContent.length;
for(j = 0;j<the_length;j++){
var the_big;
for(i = the_length; i > (j+1);i--){
if(stockContent[i-2].followTime - stockContent[i-1].followTime < 0){
the_big = stockContent[i-1];
stockContent.splice((i-1),1,stockContent[i-2]);
stockContent.splice((i-2),1,the_big);
};
}
}
分享到:
相关推荐
边做边学——Dreamweaver CS6网页设计案例教程(第3版)(共12单元)01.pdf边做边学——Dreamweaver CS6网页设计案例教程(第3版)(共12单元)01.pdf边做边学——Dreamweaver CS6网页设计案例教程(第3版)(共12单元)01.pdf边...
边做边学——PhotoshopCS6图像制作案例教程(第3版)(微课版)_PPT课件.rar
边做边学——CorelDRAWX6图形设计案例教程_PPT课件.rar
边干边学——LINUX内核指导
边做边学——CorelDRAWX6图形设计案例教程-配套教案.rar
PPT课件_边做边学——AutoCAD2014建筑制图立体化实例教程.rar
边用边学——网页制作
边做边学——PhotoshopCS6图像制作案例教程(第3版)(微课版)-配套教案.rar
边做边学——FlashCS6动漫制作案例教程(第3版)(微课版)_PPT课件.rar
《边用边学——网页制作》素材文件
基本信息 作者: 李善平 陈文智 丛书名: 其他 出版社:浙江大学出版社 ISBN:7308030733 上架时间:2002-12-23 出版日期:2002 年8月 开本:16开 页码:471 版次:1-1
边做边学深度强化学习:PyTorch程序设计实践 迷宫 Sarsa
《边用边学——网页制作》素材文件《边用边学——网页制作》素材文件
边做边学深度强化学习:PyTorch程序设计实践 迷宫 Q-Learning
《微信小程序开发边做边学》教学大纲.pdf《微信小程序开发边做边学》教学大纲.pdf
DreamWeaver网站设计入门教程 对初学者有很大的启发
边做边学深度强化学习:PyTorch程序设计实践 迷宫 随机实验代码