| 订阅 RSS

理解jQuery对象

August 22nd, 2008 | No Comments | 目录: javascript

学习JQuery时对$(…)操作后返回的jQuery对象具有如此灵活的操作方法感到惊讶,阅读JQuery源码后逐步明白一些道理。

下面仿照JQuery构造一个超简单的框架,以说明对JQuery的理解。

var jQuery = $ = function(selector){
return new jQuery.fn.init(selector);
};

使用jQuery(…)和$是一样的,都是返回一个对象,这个对象是由jQuery.fn.init的构造体构造的,这个对象有什么来头呢 ?

jQuery.fn = jQuery.prototype = {
init:function(selector){
var elem = document.getElementById(selector);
this[0] = elem;
this.length = 1;
return this;
},
each:function(method){
for(var i=0; i<this.length; i++){
method.call(this[i],i);
}
}
};

可见,返回的是一个数组,所以并没有什么神秘的东西。

但这个数组还不能进行each的操作,需要扩展其原型方法,下面的这句很重要:

jQuery.fn.init.prototype = jQuery.fn;

这样,通过$(…)得到的对象就能进行each调用了。

下面测试一下:

<div id="myid">测试内容</div>
<script>
$("myid").each(function(i){
alert(i+":"+this.id+":"+this.innerHTML);
});
</script>

Tags:

jquery语法总结和注意事项

August 22nd, 2008 | No Comments | 目录: javascript

1、关于页面元素的引用
通过jquery的$()引用元素包括通过id、class、元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用dom定义的方法。
More »

Tags:

算法,产品经理的必修课

August 22nd, 2008 | No Comments | 目录: 产品经理的盒子

你知道IMBD的电影排行算法么?你有兴趣研究一下么?

加权平均分(WR) = (v ÷ (v+m)) × R + (m ÷ (v+m)) × C
在这里:
R = 该电影的平均分
v = 该电影的总投票数
m = 列入前250所需要的最少票数(目前是1300票)
C = 数据库中所有电影的总平均分(目前是6.7)

哈哈,厉害吧,投票数多的话,那么R,也就是每个人的电影评分就起到主要作用;
如果投票数少呢,也不能说电影不好,小众的东西还往往是精品呢,文化的东西,毕竟有可能因为语言等因素,或者曲高和寡变得在IMDB上变得小众,这样如果投票数少,那么也不能一棒子打死,就趋于平均水平。
如果票数相同呢,那么就看R了,平均分越高,那么自然排名就越靠前啦。

好玩吧,再看一个。

很多网站在设计博客的排行时,在时间相关性上很困惑,为了满足访问网站频率不同的用户需求,他们只好按日、周、月来做排行,非常明显的缺陷是,让每周或每月的开始时,周榜和月榜上的精彩文章精彩程度不够,而上周末或月末的精彩文章可能被过早撤出用户视线。但是如果按七天排行或者三十天排行,算法又太复杂。
有没有兼顾的算法呢?答案是有的。


假定用户访问周期介于T1到TN,TN=N*T1,用户访问频率在T1到TN之间线性分布。
设文章在每个时间TX里获得的访问量为TXPV,设计系数A=(N-1)/N

使用计算式
T1PV*A^(N-1)+T2PV*A^(N-2)+T3PV*A^(N-3)+……+TNPV=∑TXPV*A^(N-X)
来计算随时间衰减的关注度。
太TMD牛了,佩服的五体投地。
如果算周排行榜,一篇文章在第一天的访问量跟第七天的访问量在权重上明显是不同的,到第七天还有人在访问,那就说明这篇文章更热。

通过这件事情我想,作为一个产品经理,其实应该有这样的基本功力。今天大家在研究热文的的出现和排序算法的时候,我为自己是个理科生感到非常惭愧,对于分析一种算法的改变对于效果的影响上,我表现得跟个文科生一样。倒也不是说文科生同学们就干不了这个事儿,只是说我这么多年的专业训练啊,都tmd练到哪儿去啦??!!

作为一个将致力于成为一个有创意的、脚踏实地的、有执行力的、成熟的、经验丰富的、牛B哄哄的产品经理作为毕生奋斗目标的人,我今天的体会是一定要严于律己,有意识的培养自己对于算法的感觉,积极参与工程师同志们的算法讨论,不断修炼,逐渐成仙。

Tags: