性能,还是性能!

2009-05-28 21:17

很简单的一个应用,实现方式当然也是多种多样,最直接的,通过<img>的src属性,但我想这是最废材的方法了,这样一个效果,你至少需要两张图片,然后是更多的DOM操作,你还要面对图片下载延迟的问题。还有啥性能(12)可言?

于是我写了以下的实现方式(DEMO):

function star(id){
	var star = $(id);
	var stars = $(id).getElementsByTagName("li");
	for(var i=0; i<stars.length; i++){
		stars[i].starNum = i+1;
		stars[i].onmouseover = function(){
			star.star = this.starNum;
			star.style.backgroundPosition = 'left '+(-parseInt(this.starNum)*30)+'px';
		}
		stars[i].onclick = function(){
			alert(star.star);
		}
	}
	star.onmouseout = function(){
		star.star = 0;
		this.style.backgroundPosition = 'left top';
	}
}
function $(id){return document.getElementById(id);}

当然要依据特定的DOM,这种方式通过改变背景图片的位置来实现,看起来似乎已经很完美了,可惜这只是较之于src的实现方法而言。

再看一个TZ的改进的版本(DEMO):

    function $(element){
      return document.getElementById(element) ;
    }
    var obj = $('outter').getElementsByTagName("li") ;
    for (var i=0,k;k=obj[i];i++ ) {
      k.no = i ;
      k.onmouseover = function () {
        for (var i=0;i<=this.no;i++ ) {
          obj[i].style.backgroundPosition = 'left -30px' ;
        }
      }
      k.onmouseout = function () {
        for (var i=0;i<=this.no;i++ ) {
          obj[i].style.backgroundPosition = 'left top' ;
        }
      }
    }

很显然,这个写法比我的又更优化了一些。虽然都是通过改变背景图片的坐标来实现,但是,我使用了一个30K的jpg图片,TZ使用的却是一个只有599B的gif图片,但即使不使用gif,他的图片也会比我的小很多,大概是15倍左右~···,因为具体的实现方式决定了。虽然他的方法增加了更多的DOM操作,但是最大限度地优化网络传输方面的性能,总体性能是最佳的!

只有一个感概:只要有可能,就要最大限度的减少页面下载量,就要最大限度的提升代码性能!

BTD

2009-05-23 23:18

又老了一岁~·······

谢谢MM画了一晚上的画~···恩,今年闰月,还有一次~···哈哈~···

不用QQ了

2009-05-20 17:09

发誓不用了~···MD,臃肿不堪不说,经常性的聊天记录丢失。我才发的消息,再到聊天记录去看,鬼影子都找不到~···还经常性的莫名重启~···我先后换了N个版本,什么TM,2009,2008没有一个让我安心的,我实在没耐心了!

公司经常性的在用QQ传文件,运气好的话(意思是我如果能上),我每天会间歇性的上来看看~···

以后用GTalk了,我的GT帐号关于页面有,下载安装的话最好下载英文版,中文版没有文件传送功能~···GT的聊天记录可以设置成自动保存在GMail,就省去了QQ要经常备份聊天记录的繁琐,很方便~···GMail的搜索功能比QQ聊天记录里那个猥琐的的搜索快很多,QQ聊天记录里面搜个东西在那里卡半天~···我有什么理由还用QQ?不用了~···大家珍重!

越狱完结

2009-05-19 21:35

从06年开始到现在,跨度四年,看一部电视剧能看四年也蛮不容易的~···看到最后除了几个绝对主演外,剧中太多的角色我早已忘记名字~···我不想评价哪一季更出彩,我坚持在看,说明每一季都有我去看的理由~···

神一样的迈克越到最后越是有距离感,他的死或许出人意外,但我却并没有大惊失色,或许他早已不再是一个真实的生命,虽然我觉得他没有必要死,外国导演也学会了“残缺才是美了”?最为悲情的人物——T-Bag最后依然难逃牢狱之灾,却是合情合理~···我不太理解的是这个过于中国化的结局,林肯和索菲亚,Alex和他女同事的结合太过于牵强,好好的,为啥一定要撮合到一起?

完了就完了吧~···以后多看《动物世界》~···

me.log

2009-05-07 10:02

每天吃早餐,先前吃了一个星期的皮蛋瘦肉粥+蒸排骨,烦了;吃了两天豆腐花,又烦了;然后自己早起煎了几天蛋+一盒牛奶;听说胃不好不能吃油炸东西,所以我今早上用煮的了~···

单反已入手整整一月,快门次数居然还没过千,也仅仅带出去过四次。第一次是买回来第二天请假带出去的,那天出去其实是有原因的;第二次是下班后跑去江边拍夜景,最终没留下一张片子,没三脚架,抖得厉害;第三次去拍旧铁路,赶上下雨没找到地方,没拍上;五一的时候又去了一次,大下午,烈日当头,拍了几张还被赶出来说不准拍~···

历史总是惊人的相似,去年的这个时候,我也一个人住着三室两厅的房子,今年的这个时候历史又重演了~···唯一不同的是,这次我自己斥“巨资”购置了锅碗瓢盆,准备大秀大练厨艺,并有进一步的投资计划~···早晚会上片的,尽请期待,虽然我已经觉得我做的菜越来越不好吃了~···

脚踝的伤(12)五一最后一天又复发了,这次的确是去医院检查了,这几天天天回去都会打两瓶点滴,接受治疗~···很是劳命伤财,今天还要去。所以,同学们平时要多锻炼,尤其做计算机的,身体是革命的本钱啊~···得啥不能得病~···

看病把小痰盂的钱花没了,伤~···

花钱后通常有三种心理:

  1. 痛并痛苦着。比如看病,白花花的银子出去了,身心还很痛苦~···
  2. 痛并快乐着。当所购入的物品物超所值物美价廉时,往往会有这种感受,钱虽然花出去了,心理上还多多少少获得一些慰藉。比如烧镜头,买个小痰盂不能叫烧!
  3. 快并快乐着。这种欲罢不能的心理恐怕只有在MM陪同下才会真切地体会到了~···

如果文字不装B就没技术含量,如果不矫情就无法煽情~···那~···就只能全是口水话了~···