Posted in 2010/05/31 ¬ 19:05h.yongbin
URL中,什么字符需要编码?
关于URL编码,RFC1738做了如下的规定:
“Only alphanumerics [0-9a-zA-Z], the special characters “$-_.+!*’(),” [not including the quotes - ed], and reserved characters used for their reserved purposes may be used unencoded within a URL.”
RFC继而说明了保留字、特殊符号、不安全字符的含义——也就是说,下面三类字符可以不经过编码,直接出现在URL上:
[0-9a-zA-Z]
特殊字符:$-_.+!*’(),
保留字符:&/:;=?@
为了让我们思路更清晰,我们再总结一下,哪些字符必须要编码:
ASCII表中没有对应可显示字符的,例如汉字
不安全字符,包括:#”%<>[]{}|\^`~
不当做保留字符来使用的保留字符,即&/:;=?@
Read the rest of this entry »
Posted in 2010/04/20 ¬ 19:31h.yongbin
分享一下HTML5的东西。
HTML5 历史、现状及未来
View more presentations from Yongbin Tian.
Read the rest of this entry »
Posted in 2010/01/24 ¬ 16:54h.yongbin
这次因为一个项目的原因,又重读了《Even Faster Web Sites》书里的第四章:Loading scripts without blocking,并且在Cuzillion里做了大量测试,又发现了很多有意思的细节。发现自己读书太糙,自责一下。结合实际工作,加上自己的理解,再把这一章的实用内容总结一下。
要解决的问题
页面的script标签引入外部js文件时,会阻塞后续外部资源的下载和加载,包括图片、CSS文件、iframe等等。
1. Script DOM Element比较常用
“Script DOM Element”方法是常见的方法,也就是createElement(“script”)的方法下载js文件,以此并行加载后续资源。这其实是很棒的一个方法,因为不需要担心跨域,而且我们在中文应用中,不用担心编码的问题(可以为<script>指定编码)。但这里需要注意的是,非IE浏览器下,这种方法会阻止window.onload事件,因此如果你的js文件很大,可能会带来用户体验不好。IE浏览器对这种贴script标签的行为是“无动于衷”的,不会在状态栏、光标和进度圈上做任何指示。看来IE也不是一无是处嘛,哈哈!测试地址。
2. 个人不提倡使用XHR Eval
XHR Eval方法我不提倡使用,首先是中文编码上会遇到麻烦,其次跨域问题。另外就是下面这句:
Read the rest of this entry »
Posted in 2009/08/21 ¬ 12:31h.yongbin
《Even Faster Web Sites》是Steve Souders的新书。Steve Souders现在是Google工程师,《High Performance Web Sites》一书的作者,Google Web Ex系列讲座的主持人,对前端优化有很专业的研究。他的UA Profiler和Cuzillion项目尤其引人注目。
《High Performance Web Sites》这本书相信大家都比较熟悉,Souders在其中主要讲解了Yahoo!的14条网站性能军规。很是期待这本《Even Faster Web Sites》,可惜国内市面上还没有。偶得电子版一套,迫不及待打印出来,细细读来。
这本书只有一多半是Souders写的,其他部分是Crockford, NCZ等人的贡献,因此十分有内容。这次先记一些关于页面加载性能方面的读书笔记。
Splitting the initial payload
Read the rest of this entry »
Posted in 2009/08/08 ¬ 13:35h.yongbin
JavaScript里得到某个链接的href属性时,有三种方式,总结一下:
1. 直接获得href属性,也就是
var url = el.href; // el是一个a元素
2. 使用getAttribute方法,像这样:
var url = el.getAttribute(“href”);
3. IE下的getAttribute方法有第二个参数,参见msdn的这篇。第二个参数如果是2,意思是以字符串形式返回。
var url = el.getAttribute(“href”, 2);
获得href属性的这三种方法,同样的,有三点,让人很费解,而且浏览器实现各不相同。
如果href写的是相对地址,得到属性时,浏览器可能会自动转为绝对地址。(很多情况下我们是不希望这样的)
如果href里有汉字,浏览器会自动编码吗?
如果href里有特殊字符,浏览器会自动编码吗?例如大括号{}。
为此我做了一个小测试页面(点这里可测试),得到了如下的结果:
Read the rest of this entry »