手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2010年03月的文章

Javascript:不要将属性写在prototype里

没有仔细研究过,但觉得得这就象PHP的类(Class)的复制和引用的关系。好象差不多。

原文来自:http://www.beiju123.cn/blog/?p=304

年前,某次分享会上听玉伯偶然说了这句话,当时糊里糊涂,不明所以,偶然有一天我做一个东西,发现某个对象的实例之间竟然会互相操作了定义在 prototype里的属性,于是我验证了下:

JavaScript代码
  1. var objA=function(){  
  2.   
  3. }  
  4. objA.prototype={  
  5.     name:{},  
  6.     setName:function(str){  
  7.         this.name=str;  
  8.     },  
  9.     getName:function(){  
  10.         return this.name;  
  11.     }  
  12. }  
  13. var a=new objA();  
  14.   
  15. var b=new objA();  
  16. //a.name={firstname:"孙",fathername:"信宇"};//undefined  
  17. a.name.firstname="孙";//弹出sun  
  18. alert(b.name.firstname);  

在这个例子里,当我修改实例a的name属性的时候,实例b的name属性页跟着变了,而且说明他们引用了同一份对象.

如果name属性是值类型,例如字符串,就不会与这种问题了,那是因为字符串每次被操作都返回新实例,当然反映不出冲突来了.
那为什么会出现这种冲突呢?
专业术语我不太会讲,但是prototype这种原型继承的好处其实就是节省程序运行空间,当你从objA实例化两个实例:a和b时,并不会创建两份属性 和方法,而是把他们都指向一份属性和方法,所以prototype里的所有的东西都被所有的实例共享,实例中保存的只是一个json索引.
正因为如此,如果整个改变name的值的话,让他指向别的对象,这样就不会互相影响了,而且对于值类型来说,本质就是每次操作都会返回新的实例,所以不会 出现冲突.
对于这种冲突来说,最好的解决办法就是将属性从prototype里移出来,写在构造函数里:

JavaScript代码
  1. var objA=function(){  
  2.     this.name={}  
  3. }  
  4. objA.prototype={  
  5.     setName:function(str){  
  6.         this.name=str;  
  7.     },  
  8.     getName:function(){  
  9.         return this.name;  
  10.     }  
  11. }  

这样再试一次就会发现,每次创建实例都会创建一个新的name属性对象,而不是指向同一个对象;
也可以在prototype理的init方法里用this.name={}来初始化配置参数,属性等内容,反正就是不能写在prototype里面.但是 可以在函数里初始化定义.

还有一点要注意:我个人认为,js里所有的东西都是对象,包括值类型,他们之所以表现出非引用类型的性质,是因为每次对这些对象操作都会返回新的实 例,这只是一种假象,事实上可以说,js里所有的东西都是引用类型,只是值类型在被操作时引用总是被改变,表面上来看就是非引用类型了.

--EOF--

即使是上面的情况,我还是认为可以看看

http://lifesinger.org/blog/2009/01/javascript-run-mechanism/

http://www.cnblogs.com/rainman/archive/2009/04/28/1445687.html

带动画的GIF图片在IE中不能正常工作

这个问题,怎么说呢,先把症状重复一遍吧:IE显示了图片,但是动画却不能播放。而在FirFox中却能正常的工作。
一直以来,我都以为是浏览器的关系。没有设定好而导致这种情况发生,比如一些在IE核心上开发的浏览器(maxthon)等,都可以把GIF动画关闭的。所以我也就没有仔细研究过。

来看看这个:
IE和FirFox在很多地方都有着或多或少的不同,这导致在开发时需要考虑很多的特殊情况。在最近的项目中居然发现带动画的GIF图片在页面Load之 后再以脚本控制的方式展现时,动画不能表现出来。在我的项目中,需要在点击一个按钮后来显示一个动态的Loading图片以此表示程序正在进行后台处理。 这是通过一段jQuery代码来实现的:

XML/HTML代码
  1. <font size="3" face="Calibri"><script language="javascript" type="text/javascript">function showMessage() {  
  2.         ......  
  3.         $("div#Processing").show();  
  4.         ......  
  5.     }</script>  
  6. <div id="Processing" style="display: none">  
  7.     <center>  
  8.         <img src="placeOrder_processing.gif" />  
  9.     </center>  
  10. </div></font>  

E显示了图片,但是动画却不能播放。而在FirFox中却能正常的工作。当你将整个DIV加入到DOM中时,这个DIV是隐藏的,不可见的。但是当你将其 属性设置为可见时,动画却不能被正常播放。如果将带动画的GIF图片直接以可见的形式加入到DOM中,它是可以正确的现实并播放动画的。那么,可以这样更 改代码:

XML/HTML代码
  1. <font size="3" face="Calibri"><script language="javascript" type="text/javascript">  
  2.     function showMessage() {  
  3.          
  4.         $("div#Processing").show();  
  5.         var imgSrc = '<%=ResolveUrl("~/Images/Checkout/placeOrder_processing.gif") %>';  
  6.         $("td#imgSection").append("<img src='" + imgSrc + "'/>");  
  7.           
  8.     }     
  9. </script></font>  

这样,在可见的内容中将Img加入到DOM中就可以解决这个问题了。
--EOF--
贴出这个案例地址是在:http://www.cnblogs.com/zlgcool/archive/2010/03/15/1686507.html,真的很意外的例子,所以就记录下来了

听说,宗庆后提议应禁止学生用电脑写作业

在cnbeta上看到这个新闻,心里还是觉得挺有必要,自从电脑普及后,提笔忘字的情况越来越多了。不过,象我这种打五笔的还要好一点,那些打拼音的,估计就惨了。事实上也是如此,经常看到某个字很象啥啥,然后就越看越不象。郁闷的。。。

小孩子正在一个学习阶段,所以我觉得还是有必要一定要手写,毕竟我可不想以后的小孩写出去的文章错别字连篇,甚至于连自己名字都写不来吧。我也不求小孩的字象书法家一样,但最起码要端端正正的吧?端正写字,正直做人,还是有必要的。

以下是Cnbeta上的内容,来源网址是 http://www.cnbeta.com/articles/106181.htm:

随着信息化社会的来临和电脑的普及运用,目前大部分中小学校、高等院校都不重视学生的书写训练,只有部分学校在美术课中开设了书法课。若 不及时在学校教育 中加强对学生的书写训练,不仅会造成国人书写不美观,还有可能造成汉字书写这一传统文化的断代、丢失。为此,全国人大代表、杭州娃哈哈集团有限公司董事长 兼总经理宗庆后建议在学校教育中加强对学生的书写训练。

宗庆后建议,在学校教育中开设专门的书写训练必修课,并严格规定训练课时,要对学生的书写水平进行考核,不上足规定课时,不达到一定水平不能毕 业。

宗庆后认为,电脑的普遍使用确实给学校教育的教与学都带来了很大方便,但弊端也显而易见,最突出的表现就是学生的书写能力严重退化。宗庆后建议学生的作业 一律用手写,不能用电脑,学校强制执行。

宗庆后还建议教育部门将书写水平纳入教育质量考核体系,首先对教师实行考核,如果达不到相关标准不能上课;对学校的书写教育总体状况进行考核,作为学校评 级的依据之一。
--EOF--
书写水平,我就不讲究啥了,小孩子的字也写不到哪里去,但老师的字也还是要讲究一下的,连字都写不好,怎么教书育人,再说了,练点字也不难,怎么就写不好呢?当一名老师,天天要写字,居然都练不好,怎么相信你能教育孩子。

功耗仅5W的国内第一台插座式计算机BTplug

刚看到这个新闻的时候,我还以为龙芯又出了新产品了。却不料真的是这样。。。听说国外也有类似产品。后来去文章内容里的网站看了一下。再搜索了一下,发现还是需要将近600元。所以一下子不知道觉得是否有意义了。反正我贴出来,随便大家看吧。

内容如下:

本来是打算配一台超低功耗PC机,用于做临时WebService。在网上查来查去,怎么配 都不满意,功耗始终很难突破50W大关。在翻阅了大半低功耗PC资料后,终于发现了一国外产品Sheevaplug,据说功耗只有区区5W不到。正当我兴奋不已时,却发现,这款产品是用的ARM架构。不过,我不死心,跟着这条线一路查下去,无意中被我看到了BTplug这款产品。

一开始,我还以为BTplug就是Sheevaplug被国人拿来简单包装的产品。不过再深 入了解后,我才知道,BTplug其实就是实实在在的国产货。其性能和Sheevaplug有过之而无不及。一样的超低功耗,一样的强大配置。最值得一提 的是这款产品可以支持Sheevaplug所不能支持的XP系统。

先来看看这款产品的配置:

- 约1GHz主频的CPU,支持应用最广的x86指令集
- 512M DDR2内存
- 2个USB2.0接口,PATA硬盘接口及串口、GPIO口
- 100M快速以太网接口

BTplug的体积很小,相当于移动硬盘大小,耗电不高于5W,只需要12V1A电源供电即可。怎么样?是不是很有吸引力?

--EOF--
网址是在http://bbs.btplug.cn,唉。图片上看上去好象不错

【PS】额,居然写了这么多年才被网友评论告诉我是BTplug而不是BTblug。。。我真挫啊。

图片附件:
大小: 12.35 K
尺寸: 266 x 300
浏览: 1590 次
点击打开新窗口浏览全图

图片附件:
大小: 11.41 K
尺寸: 300 x 203
浏览: 1563 次
点击打开新窗口浏览全图

网站线上线下推广的观后感

作为一个网站,线上线下的推广确实十分重要,否则,真的就象那个酒香也怕巷子深 了。最近,我也一直在研究SEO,也在看什么样的东西最容易被人吸引,也在看着统计程序分析的来源关键字、网购兴趣等。

今天看到的是某人写的文章,截了一断过来:

http://www.phpweblog.net/nameliba/archive/2010/03/13/7134.html
  1. 线上推广一般指网络上的推广  
  2. 如:  
  3. 1.行业从业人员邮件通知,所谓群发邮件.  
  4. 2.行业QQ群内群发信息.  ps:QQ群邮件发送方便快捷.  
  5. 3.网站关键字优化等  
  6. 4.同行友情连接交换  
  7. 5.如果有钱的话,手机短信群发(只发同行)  
  8. 6.百度贴吧,QQ搜吧,有道快贴等发送自己的信息.  
  9. 7.软文  
  10. 以上的全做好了,基本上也能带来一定的流量与影响力.  
  11.   
  12. 线下推广的方式也不少,如:  
  13. 1.传统的DM单子,名片等.  
  14. 2.行业杂志广告.  
  15. 3.生活中的广告牌位等.  
  16. ......  
  17. 还有很多种方式.线上加线下走完全部基本上也有点影响力加流量了,还有个最重要的是"坚持"  

 

目前我是做线上的推广,但尽量不想花钱,否则推广就真的成了无底洞了。也不想发垃圾邮件,那毕竟还是属于垃圾网站的做法,我需要的是网站的回头客,回头率和在线率越高,跳出率越低,才是我所希望的。

当然那是对于单位的网站来说,资讯类的网站,容易有吸引人的地方,但技术类的就不一样了。技术类的网站上的广告几乎都没有人点的(我也一样不太点别人的广告,所以也不能要求别人点我的。呵呵)。

Tags: seo, 推广, 短信