摘要: Decorators allow you to inject or modify code in functions or classes. Sounds a bit likeAspect-Oriented Programming(AOP) in Java, doesn't it? Except that it's both much simpler and (as a result) much more powerful. For example, suppose you'd like to do something at the entry and exit poi 阅读全文
posted @ 2011-07-09 20:48 淘小杰 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 最近的项目中大量使用了ajax技术,但ajax应用中容易导致浏览器的前进后退按钮失效,不产生前进后退功能,这是个很头疼的问题,它严重的破坏了用户美好的体验,但通过改变location.hash值来解决Ajax过程中导致的浏览器前进后退按键失效的问题Ybole.hash={url:'',setHash:function(a){ if(a.join)a=a.join('/'); $.browser.msie?$.locationHash(a):location.hash=a; },doHash:function(){var h = location.hash.rep 阅读全文
posted @ 2011-07-09 02:18 淘小杰 阅读(2675) 评论(0) 推荐(1) 编辑
摘要: 最近做de一个项目,整个页面的数据更新要纯ajax实现,没办法,连分页都得由我来写了,基本思路还是像后台那样实现分页,后台实现分页其实也就是用后台的程序来处理那段分页的模版,于是我想到了用js自己来解析那段类似的分页模版,正好以前自己也做了js模版引擎(http://www.cnblogs.com/hust/archive/2011/04/28/2032265.html),刚好派上用场,下面是分页的模版:{{if(data.totalpage>1){ }} {{ if(data.curpage!=1){}} <li><a href="javascript:vo 阅读全文
posted @ 2011-06-25 23:46 淘小杰 阅读(3260) 评论(0) 推荐(0) 编辑
摘要: 给定一个字典d,直接d[key]=value,当key不是d的键时,会自动给d增加一个条目d={'name':'小c'}print dd['age']=21print d---------- Python ----------{'name': '\xd0\xa1c'}{'age': 21, 'name': '\xd0\xa1c'}我们可以用dict的setdefault方法来干这种事,比如我们正在创建一个由单词到页数的映射字典将每个单词映射到这个次出现过的页的页码构成 阅读全文
posted @ 2011-06-21 10:41 淘小杰 阅读(442) 评论(0) 推荐(0) 编辑
摘要: 没事干的时候把凡客的首页扣下来研究了一下,在凡客的js代码里发现了一种跨域获取cookies的方法,基本原理是凡客的server端提供一个页面输出cookies字符串,client端采用jsonp的格式获取该cookies字符串。下面一段是凡客中一个跨域获取cookies的函数function setWelcome() { $.getScript("http://my.vancl.com/Usercenter/GetUserName.ashx", function() { if (typeof (data) != undefined && typeof (d 阅读全文
posted @ 2011-05-15 12:10 淘小杰 阅读(1100) 评论(0) 推荐(1) 编辑
摘要: 以下是原文:JS的this真是好难理解啊,求高手指点百度的前端面试题,代码如下:var a=5;function test(){ a=0; alert(a); alert(this.a); var a; alert(a);}test();new test();在Chrome上run了一下,结果是0500undefined0前三个结果好说,但对于第五个结果undefined我很疑惑,关键的就是这一句:alert(this.a);我的理解是,当运行到new test()这一句的时候,this指向了test,那么this.a应该就是a=0;这一句里面的0啊!为什么是undefined呢?求解答啊求解 阅读全文
posted @ 2011-05-10 10:26 淘小杰 阅读(615) 评论(1) 推荐(0) 编辑
摘要: 有时我们看到一些大型网站,页面如果有很多图片的时候,当你滚动到相应的行时,当前行的图片才即时加载的,这样子的话页面在打开只加可视区域的图片,而其它隐藏的图片则不加载,一定程序上加快了页面加载的速度,对于比较长的页面来说,这个方案是比较好的。可以节省带宽,加块页面加载速度!自己最近几天也在想着怎么实现这种功能,基本思路是给每个要延迟加载的图片一个假的src地址,然后给img标签字定义一个属性就叫dynamic吧,这个属性用了保存真实图片地址。当用户拖动滚动条时触发window.onscroll事件来检测哪些元素在用户的可视范围内,在可视范围并且还未加载的我们就加载它,嗯,基本原来就这样了。自己写 阅读全文
posted @ 2011-05-08 18:48 淘小杰 阅读(507) 评论(2) 推荐(0) 编辑
摘要: 经常上淘宝的童鞋应该知道,每次购物确认付款后系统都会提示你给对方做评价,差评,中评,好评。今天闲着没事我自己也做了个类似的星级评价组件。您给的评价是:function addEvent(obj,evtype,fn,useCapture) { if (obj.addEventListener) { obj.addEventListener(evtype,fn,useCapture); } else { obj.attachEvent("on"+evtype,function(){return fn.call(obj)});//IE不支持事件捕获,修复ie绑定事件this指向w 阅读全文
posted @ 2011-04-29 22:09 淘小杰 阅读(794) 评论(4) 推荐(0) 编辑
摘要: 上次的js模版引擎在ie6,7下总是发生错误,今天用ie8的调试工具终于找到了错误的根源所在,原来是自己多写了一个逗号,真囧!这次的模版引擎基本没啥大问题了,全面兼容ie6,7,8 ff,opera各大主流浏览器,并且修复了特殊标签}}}的bug,ok,直接上demo吧。 <div>hust_小C的模版引擎<h2>对象遍历</h2> {{ for(var i in data.a){ }} <li>{{=i}}:{{=data.a[i]}}</li> {{ } }}<h2>If else 解析</h2> {{if 阅读全文
posted @ 2011-04-28 22:36 淘小杰 阅读(5689) 评论(1) 推荐(1) 编辑
摘要: 昨晚写的那个js模版引擎有不少bug,比如有些分隔符不支持,ie下有bug,并且还用了遭不少人唾弃的with,今晚又进行了一下改善,提高了分隔符的自由度,避开了with的使用,修复了在ie下的bug(这个主要是由转义字符引起的bug,IE7下任然错误^_^),好了不多说了,直接看demo吧! <div>hust_小C的模版引擎<h2>对象遍历</h2> {{ for(var i in data.a){ }} <li>{{=i}}:{{=data.a[i]}}</li> {{ } }}<h2>If else 解析</h 阅读全文
posted @ 2011-04-26 21:15 淘小杰 阅读(609) 评论(1) 推荐(0) 编辑