正文内容加载中...
posted @ 2013-06-25 19:26 demix 阅读(157) 评论(0) 编辑
摘要: 今天被告诉了一个奇怪的事儿,第三方网站使用我们提供的签名是出现了错误,原因是使用php的urldecode时把加号(+) 替换成了空格。 试验了一下python的urllib库以及js 的 encodeURIComponent 均不会替换。空格encode也是替换成了 '%20' 。阅读全文
posted @ 2011-12-23 13:53 demix 阅读(421) 评论(0) 编辑
摘要: 最近给组内做了一个分享,算是对PyJs的一个最简单的介绍。从commonjs的优点、缺点,其他实现到PyJs的实现,都做了描述,也是整个系列文章的补充。 接下来PyJs可能关注以下几个功能的开发:阅读全文
posted @ 2011-09-21 12:08 demix 阅读(1246) 评论(0) 编辑
摘要: 这篇主要讲js之外的PyJs扩展功能。 首先要讲PyJs另外一个设计原则: 系统不集成过多功能,专注于实现其的核心价值。附属功能,应该使用插件或其他的形式附加上去。 PyJs的核心价值就是基于commonjs语法的本地js调试及上线打包的实现。我不希望其他任何平台级别的功能加入到这个系统里,但是很多时候我们的本地调试又会需要一些增强的功能,我们在PyJs中是以代理及插件的方式来实现这个增强。阅读全文
posted @ 2011-09-21 10:50 demix 阅读(1547) 评论(2) 编辑
摘要: 本地调试过程的require,都是同步ajax请求的。这种逻辑不可能部署到线上吧,所以针对上线,我们做了特殊的处理。编译过程加入依赖列表,请求可以通过动态combo或者并行加载的方式。阅读全文
posted @ 2011-08-26 13:46 demix 阅读(1304) 评论(1) 编辑
摘要: 续上,这一篇来深入到PyJs内部,讲一讲它是怎么运作的。 首先说一下PyJs的诞生记。 关于coding,我一只有坚持两个原则: 1. 不写重复的,无意义的代码 2. 编码不能有过多的约束。 在开发百度连接JavaScript SDK的过程中,会面临一个问题:代码要保持一定的规范性以便更多的服务能方便的接入到整个SDK里面来。一开始的做法会加入很多命名空间来规划服务,同时要求代码必须遵循一定的风格。这样无疑违背了自己第二个原则,而且各服务的开放接口千奇百怪,控制起来也很头疼。阅读全文
posted @ 2011-08-26 11:23 demix 阅读(1904) 评论(0) 编辑
摘要: PyJs是依赖于python的一个符合commonjs规范的浏览器端JavaScript Framework。 PyJs优点: a.编写过程完全遵循commonjs module 1.1.1规范,不需要自行增加公共模板,没有各种自定义函数。nodejs的lib库文件(没有特殊接口)可以直接copy到PyJs运行目录下即可运行。 b.完全实现文件的并行异步加载,对于支持combo的服务器,只需要一个请求就能将所有依赖文件全部读取出来。阅读全文
posted @ 2011-08-24 15:14 demix 阅读(8412) 评论(3) 编辑
摘要: Steve Souders 最近做了这么一个东西—— ControllJs。 主要为了是解决网页加载中Js文件的性能问题。这里做一个简单的转述。 众所周知,资源文件在浏览器加载直至用户可用是有两个阶段的:加载,执行。JavaScript的加载会阻滞其他资源的加载,而由于浏览器渲染是单线程的,JS执行的同时浏览器实际是假死状态的,页面渲染会停止,浏览器也不会下载新的文件。这样也会造成很大的性能问题, 所以Steve提出了三个方法:异步加载;延迟执行;覆写document.write。阅读全文
posted @ 2010-12-17 16:54 demix 阅读(4037) 评论(11) 编辑
摘要: 看到标题也许有些人要疯了,都什么年代了还用quirksmode?本来我也是持有这种想法的,不过在工作中真正使用过一次之后,感觉还是很不错。 首先说一下背景。现在又是一个浏览器大战的时代,ie6,7,8,9 Firefox 3.6,4 Chrome , Opera 10,11,还有好多好多不知名的小牌浏览器,历史上从来没有如此丰富过。丰富的浏览器促进了行业的发展,但同时也为前端开发带来巨大的挑战,我们的产出必须要经过大部分浏览器的测试。万幸的是,除ie以外的浏览器,基本上渲染上大同小异,可以合并为一个调试。问题就在于ie,现在的发行版本6,7,8,9,可能存在每个浏览器都渲染的不一样的情况。特别是对于一些要求精细的应用,各种几像素的偏差往往很伤脑筋。 这个时候,也许考虑一下quirksmode,一切又会不一样。阅读全文
posted @ 2010-12-11 00:45 demix 阅读(495) 评论(3) 编辑
摘要: 为了提高网站的加载速度,有一个很重要的手段就是在用户浏览过程中的上游网站做一个文件的预加载。预加载文件一般有两种常用的方式:xhr和动态插入节点的方式。动态插入节点是最为简单也最为广泛的一种异步加载方式(例如yui的Get模块),然后使用动态插入节点方法加载的文件都会在加载后立即执行,javascript的执行一方面会占用浏览器js执行进程,另一方面也可能改变页面结构,而css的执行更有可能让整个页面变化。xhr方式虽然不会执行脚本,但是由于同域的限制,且如今网站的静态文件都是部署在cdn服务器上,如何预加载css js文件也变有点玄妙了。阅读全文
posted @ 2010-04-22 14:43 demix 阅读(5142) 评论(19) 编辑