omiga

简单就好

性能,还是性能!

5条评论»

很简单的一个应用,实现方式当然也是多种多样,最直接的,通过<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

6条评论»

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

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

me.log

6条评论»

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

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

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

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

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

花钱后通常有三种心理:

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

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