博客园 - demix
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=55042
2017-12-31T22:39:54Z
demix
https://www.cnblogs.com/demix/
feed.cnblogs.com
https://www.cnblogs.com/demix/p/3155291.html
mobile开发备忘 - demix
css-webkit-tap-highlight-color webkit点击时会反色,可以清楚-webkit-appearance 设为none时自带组建样式清除
2013-06-25T11:26:00Z
2013-06-25T11:26:00Z
demix
https://www.cnblogs.com/demix/
【摘要】css-webkit-tap-highlight-color webkit点击时会反色,可以清楚-webkit-appearance 设为none时自带组建样式清除 <a href="https://www.cnblogs.com/demix/p/3155291.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/demix/archive/2011/12/23/2299330.html
url decode problem - demix
今天被告诉了一个奇怪的事儿,第三方网站使用我们提供的签名是出现了错误,原因是使用php的urldecode时把加号(+) 替换成了空格。
试验了一下python的urllib库以及js 的 encodeURIComponent 均不会替换。空格encode也是替换成了 '%20' 。
2011-12-23T05:53:00Z
2011-12-23T05:53:00Z
demix
https://www.cnblogs.com/demix/
【摘要】今天被告诉了一个奇怪的事儿,第三方网站使用我们提供的签名是出现了错误,原因是使用php的urldecode时把加号(+) 替换成了空格。
试验了一下python的urllib库以及js 的 encodeURIComponent 均不会替换。空格encode也是替换成了 '%20' 。 <a href="https://www.cnblogs.com/demix/archive/2011/12/23/2299330.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/demix/archive/2011/09/21/2183332.html
[PyJs系列介绍]五、回顾及展望 - demix
最近给组内做了一个分享,算是对PyJs的一个最简单的介绍。从commonjs的优点、缺点,其他实现到PyJs的实现,都做了描述,也是整个系列文章的补充。
接下来PyJs可能关注以下几个功能的开发:
2011-09-21T04:08:00Z
2011-09-21T04:08:00Z
demix
https://www.cnblogs.com/demix/
【摘要】最近给组内做了一个分享,算是对PyJs的一个最简单的介绍。从commonjs的优点、缺点,其他实现到PyJs的实现,都做了描述,也是整个系列文章的补充。
接下来PyJs可能关注以下几个功能的开发: <a href="https://www.cnblogs.com/demix/archive/2011/09/21/2183332.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/demix/archive/2011/09/21/2171803.html
[PyJs系列介绍]四、代理与插件 - demix
这篇主要讲js之外的PyJs扩展功能。
首先要讲PyJs另外一个设计原则:
系统不集成过多功能,专注于实现其的核心价值。附属功能,应该使用插件或其他的形式附加上去。
PyJs的核心价值就是基于commonjs语法的本地js调试及上线打包的实现。我不希望其他任何平台级别的功能加入到这个系统里,但是很多时候我们的本地调试又会需要一些增强的功能,我们在PyJs中是以代理及插件的方式来实现这个增强。
2011-09-21T02:50:00Z
2011-09-21T02:50:00Z
demix
https://www.cnblogs.com/demix/
【摘要】这篇主要讲js之外的PyJs扩展功能。
首先要讲PyJs另外一个设计原则:
系统不集成过多功能,专注于实现其的核心价值。附属功能,应该使用插件或其他的形式附加上去。
PyJs的核心价值就是基于commonjs语法的本地js调试及上线打包的实现。我不希望其他任何平台级别的功能加入到这个系统里,但是很多时候我们的本地调试又会需要一些增强的功能,我们在PyJs中是以代理及插件的方式来实现这个增强。 <a href="https://www.cnblogs.com/demix/archive/2011/09/21/2171803.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/demix/archive/2011/08/26/2154496.html
[PyJs系列介绍]三、编译与上线 - demix
本地调试过程的require,都是同步ajax请求的。这种逻辑不可能部署到线上吧,所以针对上线,我们做了特殊的处理。编译过程加入依赖列表,请求可以通过动态combo或者并行加载的方式。
2011-08-26T05:46:00Z
2011-08-26T05:46:00Z
demix
https://www.cnblogs.com/demix/
【摘要】本地调试过程的require,都是同步ajax请求的。这种逻辑不可能部署到线上吧,所以针对上线,我们做了特殊的处理。编译过程加入依赖列表,请求可以通过动态combo或者并行加载的方式。 <a href="https://www.cnblogs.com/demix/archive/2011/08/26/2154496.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/demix/archive/2011/08/26/2154181.html
[PyJs系列介绍]二、缘起和核心概念 - demix
续上,这一篇来深入到PyJs内部,讲一讲它是怎么运作的。
首先说一下PyJs的诞生记。
关于coding,我一只有坚持两个原则:
1. 不写重复的,无意义的代码
2. 编码不能有过多的约束。
在开发百度连接JavaScript SDK的过程中,会面临一个问题:代码要保持一定的规范性以便更多的服务能方便的接入到整个SDK里面来。一开始的做法会加入很多命名空间来规划服务,同时要求代码必须遵循一定的风格。这样无疑违背了自己第二个原则,而且各服务的开放接口千奇百怪,控制起来也很头疼。
2011-08-26T03:23:00Z
2011-08-26T03:23:00Z
demix
https://www.cnblogs.com/demix/
【摘要】续上,这一篇来深入到PyJs内部,讲一讲它是怎么运作的。
首先说一下PyJs的诞生记。
关于coding,我一只有坚持两个原则:
1. 不写重复的,无意义的代码
2. 编码不能有过多的约束。
在开发百度连接JavaScript SDK的过程中,会面临一个问题:代码要保持一定的规范性以便更多的服务能方便的接入到整个SDK里面来。一开始的做法会加入很多命名空间来规划服务,同时要求代码必须遵循一定的风格。这样无疑违背了自己第二个原则,而且各服务的开放接口千奇百怪,控制起来也很头疼。 <a href="https://www.cnblogs.com/demix/archive/2011/08/26/2154181.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/demix/archive/2011/08/24/2137306.html
[PyJs系列介绍]一、从commonjs和seajs说起 - demix
PyJs是依赖于python的一个符合commonjs规范的浏览器端JavaScript Framework。
PyJs优点:
a.编写过程完全遵循commonjs module 1.1.1规范,不需要自行增加公共模板,没有各种自定义函数。nodejs的lib库文件(没有特殊接口)可以直接copy到PyJs运行目录下即可运行。
b.完全实现文件的并行异步加载,对于支持combo的服务器,只需要一个请求就能将所有依赖文件全部读取出来。
2011-08-24T07:14:00Z
2011-08-24T07:14:00Z
demix
https://www.cnblogs.com/demix/
【摘要】PyJs是依赖于python的一个符合commonjs规范的浏览器端JavaScript Framework。
PyJs优点:
a.编写过程完全遵循commonjs module 1.1.1规范,不需要自行增加公共模板,没有各种自定义函数。nodejs的lib库文件(没有特殊接口)可以直接copy到PyJs运行目录下即可运行。
b.完全实现文件的并行异步加载,对于支持combo的服务器,只需要一个请求就能将所有依赖文件全部读取出来。 <a href="https://www.cnblogs.com/demix/archive/2011/08/24/2137306.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/demix/archive/2010/12/17/1909288.html
ControlJS介绍 - demix
Steve Souders 最近做了这么一个东西—— ControllJs。 主要为了是解决网页加载中Js文件的性能问题。这里做一个简单的转述。
众所周知,资源文件在浏览器加载直至用户可用是有两个阶段的:加载,执行。JavaScript的加载会阻滞其他资源的加载,而由于浏览器渲染是单线程的,JS执行的同时浏览器实际是假死状态的,页面渲染会停止,浏览器也不会下载新的文件。这样也会造成很大的性能问题, 所以Steve提出了三个方法:异步加载;延迟执行;覆写document.write。
2010-12-17T08:54:00Z
2010-12-17T08:54:00Z
demix
https://www.cnblogs.com/demix/
【摘要】Steve Souders 最近做了这么一个东西—— ControllJs。 主要为了是解决网页加载中Js文件的性能问题。这里做一个简单的转述。
众所周知,资源文件在浏览器加载直至用户可用是有两个阶段的:加载,执行。JavaScript的加载会阻滞其他资源的加载,而由于浏览器渲染是单线程的,JS执行的同时浏览器实际是假死状态的,页面渲染会停止,浏览器也不会下载新的文件。这样也会造成很大的性能问题, 所以Steve提出了三个方法:异步加载;延迟执行;覆写document.write。 <a href="https://www.cnblogs.com/demix/archive/2010/12/17/1909288.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/demix/archive/2010/12/11/1902759.html
使用quirksmode来简化开发 - demix
看到标题也许有些人要疯了,都什么年代了还用quirksmode?本来我也是持有这种想法的,不过在工作中真正使用过一次之后,感觉还是很不错。
首先说一下背景。现在又是一个浏览器大战的时代,ie6,7,8,9 Firefox 3.6,4 Chrome , Opera 10,11,还有好多好多不知名的小牌浏览器,历史上从来没有如此丰富过。丰富的浏览器促进了行业的发展,但同时也为前端开发带来巨大的挑战,我们的产出必须要经过大部分浏览器的测试。万幸的是,除ie以外的浏览器,基本上渲染上大同小异,可以合并为一个调试。问题就在于ie,现在的发行版本6,7,8,9,可能存在每个浏览器都渲染的不一样的情况。特别是对于一些要求精细的应用,各种几像素的偏差往往很伤脑筋。
这个时候,也许考虑一下quirksmode,一切又会不一样。
2010-12-10T16:45:00Z
2010-12-10T16:45:00Z
demix
https://www.cnblogs.com/demix/
【摘要】看到标题也许有些人要疯了,都什么年代了还用quirksmode?本来我也是持有这种想法的,不过在工作中真正使用过一次之后,感觉还是很不错。
首先说一下背景。现在又是一个浏览器大战的时代,ie6,7,8,9 Firefox 3.6,4 Chrome , Opera 10,11,还有好多好多不知名的小牌浏览器,历史上从来没有如此丰富过。丰富的浏览器促进了行业的发展,但同时也为前端开发带来巨大的挑战,我们的产出必须要经过大部分浏览器的测试。万幸的是,除ie以外的浏览器,基本上渲染上大同小异,可以合并为一个调试。问题就在于ie,现在的发行版本6,7,8,9,可能存在每个浏览器都渲染的不一样的情况。特别是对于一些要求精细的应用,各种几像素的偏差往往很伤脑筋。
这个时候,也许考虑一下quirksmode,一切又会不一样。 <a href="https://www.cnblogs.com/demix/archive/2010/12/11/1902759.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/demix/archive/2010/04/22/1718040.html
css,javascript的预加载 - demix
为了提高网站的加载速度,有一个很重要的手段就是在用户浏览过程中的上游网站做一个文件的预加载。预加载文件一般有两种常用的方式:xhr和动态插入节点的方式。动态插入节点是最为简单也最为广泛的一种异步加载方式(例如yui的Get模块),然后使用动态插入节点方法加载的文件都会在加载后立即执行,javascript的执行一方面会占用浏览器js执行进程,另一方面也可能改变页面结构,而css的执行更有可能让整个页面变化。xhr方式虽然不会执行脚本,但是由于同域的限制,且如今网站的静态文件都是部署在cdn服务器上,如何预加载css js文件也变有点玄妙了。
2010-04-22T06:43:00Z
2010-04-22T06:43:00Z
demix
https://www.cnblogs.com/demix/
【摘要】为了提高网站的加载速度,有一个很重要的手段就是在用户浏览过程中的上游网站做一个文件的预加载。预加载文件一般有两种常用的方式:xhr和动态插入节点的方式。动态插入节点是最为简单也最为广泛的一种异步加载方式(例如yui的Get模块),然后使用动态插入节点方法加载的文件都会在加载后立即执行,javascript的执行一方面会占用浏览器js执行进程,另一方面也可能改变页面结构,而css的执行更有可能让整个页面变化。xhr方式虽然不会执行脚本,但是由于同域的限制,且如今网站的静态文件都是部署在cdn服务器上,如何预加载css js文件也变有点玄妙了。 <a href="https://www.cnblogs.com/demix/archive/2010/04/22/1718040.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/demix/archive/2010/01/10/1643553.html
IE地雷——table元素的innerHTML - demix
做项目时遇到一个数据表需要展示,由于坚定着使用合理标签表示合适内容,于是使用了table,悲剧开始了。首先时飘忽不定的collapse的border,ie6偏偏有一个地方与其他浏览器表现不同,一条丑陋的border不管怎么样都显示出来。无解。上面的问题可以用诡异方法解决的话,那接下来就完全没有办法了。由于涉及到了数据的异步传输和实时显示,于是自己写了一个前端模版通过innerHTML动态更新数据。...
2010-01-10T08:21:00Z
2010-01-10T08:21:00Z
demix
https://www.cnblogs.com/demix/
【摘要】做项目时遇到一个数据表需要展示,由于坚定着使用合理标签表示合适内容,于是使用了table,悲剧开始了。首先时飘忽不定的collapse的border,ie6偏偏有一个地方与其他浏览器表现不同,一条丑陋的border不管怎么样都显示出来。无解。上面的问题可以用诡异方法解决的话,那接下来就完全没有办法了。由于涉及到了数据的异步传输和实时显示,于是自己写了一个前端模版通过innerHTML动态更新数据。... <a href="https://www.cnblogs.com/demix/archive/2010/01/10/1643553.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/demix/archive/2009/11/28/1612715.html
【翻译】@font-face与性能 - demix
上一周我在Ajaxian中看到了一篇关于 @font-face 的文章。对于字体文件如何影响web网页效率的问题我已经思考了几个月了,于是我继续读了几篇文章,终于形成了下面这些自己的看法。
FOUT:Flash of Unstyled Text
Paul 将Flash of Unstyled Text指为FOUT。
2009-11-28T10:35:00Z
2009-11-28T10:35:00Z
demix
https://www.cnblogs.com/demix/
【摘要】上一周我在Ajaxian中看到了一篇关于 @font-face 的文章。对于字体文件如何影响web网页效率的问题我已经思考了几个月了,于是我继续读了几篇文章,终于形成了下面这些自己的看法。
FOUT:Flash of Unstyled Text
Paul 将Flash of Unstyled Text指为FOUT。 <a href="https://www.cnblogs.com/demix/archive/2009/11/28/1612715.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/demix/archive/2009/11/08/1598630.html
YUI3学习笔记之二:自定义事件与AOP - demix
对于我来说,javascript中最有趣而又最无奈的就是事件处理了。丰富前卫的交互体验、流畅便捷的浏览操作,都需要建立在良好的事件处理机制上。然而浏览器的差异在事件处理上达到了最大化,内存泄露在事件处理函数中又最容易引入,这让很多人都对javascript的事件处理很头痛。自定义事件就很少有这种天然的浏览器差异了。我们日常编码中接触自定义事件的机会也很多,比如一个xhr对象,一般都会定义onsuc...
2009-11-08T13:47:00Z
2009-11-08T13:47:00Z
demix
https://www.cnblogs.com/demix/
【摘要】对于我来说,javascript中最有趣而又最无奈的就是事件处理了。丰富前卫的交互体验、流畅便捷的浏览操作,都需要建立在良好的事件处理机制上。然而浏览器的差异在事件处理上达到了最大化,内存泄露在事件处理函数中又最容易引入,这让很多人都对javascript的事件处理很头痛。自定义事件就很少有这种天然的浏览器差异了。我们日常编码中接触自定义事件的机会也很多,比如一个xhr对象,一般都会定义onsuc... <a href="https://www.cnblogs.com/demix/archive/2009/11/08/1598630.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/demix/archive/2009/10/15/1584022.html
【翻译】谈 focus 和 blur 的事件代理 - demix
在下拉列表等许多常用的效果中,事件代理往往非常的重要,因为许多在各个链接上触发的事件,往往可以很容易的在根节点中进行监听。
然而这会引发一个问题,尽管事件代理对于鼠标事件的响应非常好,但它对于focus和blur事件却不支持。而让键盘操作支持下拉列表往往需要它们来实现。
随后,在我对事件的实验中,我发现了代理focus和blur事件的方法。
2009-10-15T10:53:00Z
2009-10-15T10:53:00Z
demix
https://www.cnblogs.com/demix/
【摘要】在下拉列表等许多常用的效果中,事件代理往往非常的重要,因为许多在各个链接上触发的事件,往往可以很容易的在根节点中进行监听。
然而这会引发一个问题,尽管事件代理对于鼠标事件的响应非常好,但它对于focus和blur事件却不支持。而让键盘操作支持下拉列表往往需要它们来实现。
随后,在我对事件的实验中,我发现了代理focus和blur事件的方法。 <a href="https://www.cnblogs.com/demix/archive/2009/10/15/1584022.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/demix/archive/2009/10/09/1579878.html
【翻译】细分域名的优势 - demix
《高性能网站建设指南》中的第九条指出,减少DNS的查询会让我们的页面载入的更快。这是对的,但是是针对某些情况说的。我们有时让许多文件分散到多个不同的域名下载会相对于从同一域名下载更有优势。我把这一方式称为domain sharding(域名碎片)。采用这一种方式,能够允许我们一次性下载更多的文件,从而减少了页面的载入时间。
2009-10-09T12:56:00Z
2009-10-09T12:56:00Z
demix
https://www.cnblogs.com/demix/
【摘要】《高性能网站建设指南》中的第九条指出,减少DNS的查询会让我们的页面载入的更快。这是对的,但是是针对某些情况说的。我们有时让许多文件分散到多个不同的域名下载会相对于从同一域名下载更有优势。我把这一方式称为domain sharding(域名碎片)。采用这一种方式,能够允许我们一次性下载更多的文件,从而减少了页面的载入时间。 <a href="https://www.cnblogs.com/demix/archive/2009/10/09/1579878.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/demix/archive/2009/09/16/1567906.html
【翻译】Iframe, onload 与 document.domain - demix
在web2.0的时代,越来越多的人开始关注使用iframe将第三方网站的内容嵌入自己的网站中。当javascript能够通过其域名进行数据交互后,iframe开始提供一系列的安全措施,使得一个嵌套于iframe中的第三方网站不可能获取到主体网站的脚本程序。这个跨域的限制同样也让父级页面无法读取嵌套内容的脚本。从所有的角度来说,父级页面和被iframe包含的页面是完全没有联系的。这个复杂的关系让javascript对象的所有权成为了许多有关iframe讨论的话题之一。
2009-09-16T08:30:00Z
2009-09-16T08:30:00Z
demix
https://www.cnblogs.com/demix/
【摘要】在web2.0的时代,越来越多的人开始关注使用iframe将第三方网站的内容嵌入自己的网站中。当javascript能够通过其域名进行数据交互后,iframe开始提供一系列的安全措施,使得一个嵌套于iframe中的第三方网站不可能获取到主体网站的脚本程序。这个跨域的限制同样也让父级页面无法读取嵌套内容的脚本。从所有的角度来说,父级页面和被iframe包含的页面是完全没有联系的。这个复杂的关系让javascript对象的所有权成为了许多有关iframe讨论的话题之一。 <a href="https://www.cnblogs.com/demix/archive/2009/09/16/1567906.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/demix/archive/2009/09/06/yui3_notebook-01.html
YUI3学习笔记之一:初探框架 - demix
YUI框架想必大家并不陌生。由大名鼎鼎的yahoo前端开发团队开发并且维护。自己曾经基于YUI2上做过二次开发,在感叹其功能全面的同时,也在一个程度上理解了它未能像jquery,mootools等框架大范围被开发者所接受的原因。模块粒度过大,代码臃肿等问题一直饱受诟病。不过,随着yui3的来临,一切都有所改观。以下仅仅是自己在平时学习的过程中的一些小心得,并且是站在一个从设计师转型为开发者的角度上...
2009-09-06T15:34:00Z
2009-09-06T15:34:00Z
demix
https://www.cnblogs.com/demix/
【摘要】YUI框架想必大家并不陌生。由大名鼎鼎的yahoo前端开发团队开发并且维护。自己曾经基于YUI2上做过二次开发,在感叹其功能全面的同时,也在一个程度上理解了它未能像jquery,mootools等框架大范围被开发者所接受的原因。模块粒度过大,代码臃肿等问题一直饱受诟病。不过,随着yui3的来临,一切都有所改观。以下仅仅是自己在平时学习的过程中的一些小心得,并且是站在一个从设计师转型为开发者的角度上... <a href="https://www.cnblogs.com/demix/archive/2009/09/06/yui3_notebook-01.html" target="_blank">阅读全文</a>