摘要: 前几天nodejs发布了新版本4.0,其中涉及到一个更新比较多的模块,那就是下面要介绍的timer模块。 timers: Improved timer performance from porting the 0.12 implementation, plus minor fixes (Jeremi... 阅读全文
posted @ 2015-09-15 09:03 淘小杰 阅读(3738) 评论(2) 推荐(5) 编辑
摘要: ## 背景Node.js 社区近期在美国独立日周末的狂欢之时爆出漏洞https://medium.com/@iojs/important-security-upgrades-for-node-js-and-io-js-8ac14ece5852先给出一段会触发该漏洞的代码![http://img3.t... 阅读全文
posted @ 2015-07-14 16:16 淘小杰 阅读(884) 评论(0) 推荐(0) 编辑
摘要: yield的英文单词意思是生产,刚接触Python的时候感到非常困惑,一直没弄明白yield的用法。只是粗略的知道yield可以用来为一个函数返回值塞数据,比如下面的例子:defaddlist(alist):foriinalist:yieldi+1取出alist的每一项,然后把i + 1塞进去。然后通过调用取出每一项:alist=[1,2,3,4]forxinaddlist(alist):printx,这的确是yield应用的一个例子,但是,看过limodou的文章《2.5版yield之学习心得》,并自己反复体验后,对yield有了一个全新的理解。1. 包含yield的函数假如你看到某个函数包 阅读全文
posted @ 2013-07-23 16:56 淘小杰 阅读(379) 评论(0) 推荐(0) 编辑
摘要: JSON对象的序列化与反序列化相信大家都很熟悉了。基本的api是JSON.parse与JSON.stringify.var json={ uiModule:'http://www.a.com', login:'true', mainSubjectId:3004, happydays:100, happyhours:1, userCount :200, itemCount:1000000, type:'all', mainSubjectId:3004, taglist:[ {'tagName':'xiaoc', 阅读全文
posted @ 2012-11-28 12:27 淘小杰 阅读(5177) 评论(9) 推荐(0) 编辑
摘要: 这次的模板引擎主要在算法方面做了些改进,主要借鉴正美的思路,https://github.com/RubyLouvre/mass-Framework/issues/22传统的字符串模块都要处理转义的问题,但我这新方法通过传参手段消灭了这步骤核心原理function a(){ var b = ["1,2,3"] return Function("b", "function test(){}; return function(data){ test(); return b }")(b)}a()+""主要原理是根据模版生 阅读全文
posted @ 2012-08-30 12:41 淘小杰 阅读(1901) 评论(3) 推荐(0) 编辑
摘要: 上次的js模板引擎v4基本已经可以满足大部分需求了,期间也碰到过一些问题,当模板里需要一些函数来处理数据时,必须得定一个全局函数,或者在一个全局变量上挂着一个属性,这种用法还是感觉蛮不爽的,没必要为了一个只在模板内部使用的工具函数影响其外部的代码,所以这次模板引入了像smarty模板那样可以定义在模版内部定义函数的helper机制,同时改善了v4中所以模板数据前面必须得加个data,比如有个对象a,模板里引用时必须得写上data.a这样不爽的东西,采用$a代替data.a用着的感觉好多了。该模板优点:1.模板采用js语法,没有学习成本2.也是由于优点1所以该模板的解析速度还是很占优势的3.可以 阅读全文
posted @ 2012-08-07 11:47 淘小杰 阅读(2700) 评论(7) 推荐(0) 编辑
摘要: 对于python的dict数据类型常用for结合dict的items方法进行遍历for k,v in d.items(): print k,v还有种遍历方式利用dict的popitem方法进行遍历while d: k,v=d.popitem() print k,v这2种方法主要区别是什么呢,采用第一种方式遍历不会改变原变量,比如d={"a":1,"b":2,"c":3,"d":4}遍历后d还是这个值,第二种遍历后d={}对于可能会发生变化的dict采用第二种方式较为安全,采用for来遍历会产生不稳定的结果。具体例子 阅读全文
posted @ 2012-07-18 11:26 淘小杰 阅读(8589) 评论(1) 推荐(1) 编辑
摘要: 今天看到一段程序中有用到lambda函数,其实很简单 key=lambda (l,s):s猜我犯了个什么错误?自己把(l,s)理解成lambda的2个形参了,是蛮容易这样理解的哈,毕竟以前函数都是 def f(1,s):这样的然后自己调用时老提示错误,参数错误,于是就看了下官方文档才知道lmbda参数其实是这样的lambda x,y:x+yx,y是它的2个形参,所以这里 lambda (l,s)其实就只有一个参数,那就是一个tuple类型的参数,所以调用时就是key((x,y))这个错误是很容易犯啊;)>>> key=lambda(1,s):sSyntaxError: inv 阅读全文
posted @ 2012-05-20 13:39 淘小杰 阅读(5211) 评论(4) 推荐(2) 编辑
摘要: 最近页面中要做个省市联动菜单,自然得与select的option打交道了开发过程中遇到几个bug,现整理出来。1.option.remove因为菜单是联动的,所以城市的option要动态更新,当然就得先清除了,于是我就写了个清除的函数function clearAllOptions(self){ var option=self.options; for(var i=0,len=option.length;i<len;i++){ option.remove(i); } }但发现在ie下并没有达到预期的效果产生这个的原因是option总是在动态的变化,所以无法全部清除掉解决办法是直接令它的i 阅读全文
posted @ 2011-08-15 16:24 淘小杰 阅读(1160) 评论(1) 推荐(0) 编辑
摘要: import redef multiple_replace(text,adict): rx=re.compile('|'.join(map(re.escape,adict))) def one_xlat(match): return adict[match.group(0)] return rx.sub(one_xlat,text)print multiple_replace('abc123erts',{'a':'A','b':'B'})基本原理是 我们把要替换的字符串作为某个字典的key,对应的要 阅读全文
posted @ 2011-08-09 10:19 淘小杰 阅读(1772) 评论(0) 推荐(0) 编辑