SitePoint近访John Resig
2008年12月28日 Web开发, 翻译
SitePoint的Ara Pehlivanina最近采访了John Resig。谈了JavaScript库、John Resig得意的几个项目、那本JavaScript高手期待已久但却一再推迟的Secrets of the JavaScript Ninja,还谈了Resig的个人生活。
SP:作为jQuery的创建者,你如何看待JavaScript库之间的竞争,以及它们将来的发展?
Resig:JavaScript都要经历几个循环(从某角度上讲,类似浏览器)。首先是一段时间的竞争,然后是相互合作,最后就是同质化。例如,目前所有库均已实现的CSS选择符引擎,最初竞争的焦点是引擎性能;人们以最有效方式反复实现同一特性,造就了不同实现性能上的差异。然后,不同的库开始合作,就共同支持的选择符集合达成一致,同时也共享提升性能的技术。结果,我们就看到了同质化的代码基——形成一个统一的后台(如Sizzle)。对于库中都存在的其他特性,肯定也要经历类似的循环。
库的最大好处表现在两方面:一是应该帮助用户处理浏览器问题,二是应该为用户提供能够简化开发的API。成功的库必须同时做到这两点。不过,也应该知道,寻求一种统一的库不太可能。毕竟,库与库间的差别主要体现在API,以及如何解决浏览器问题上。让所有库都提供平淡、通用的API,只会导致用户对其反复修补(Turning it into a bland, generic API will only result in a device that users will have to paper over again and again.)。
SP:Sizzle是什么?
Resig:Sizzle是一个新的纯JavaScript写成的CSS选择符引擎。Sizzle是这个引擎的代号,它最终会成为jQuery的新引擎。我希望能有一个高效(至少与其他竞争性引擎相比)、纤小(较小的文件)、容易扩展并且没有依赖性的引擎。
实现这样一个引擎的必要性在于,它很可能被其他一些主要的库采用。我已经跟MochiKit、Prototype、Dojo和TinyMCE团队谈过了,他们都表示对Sizzle的代码基很感兴趣。如果能统一JavaScript中CSS选择符的使用就再好不过了。 查看全文 »
Tags: HTML/XHTML, JavaScript
由于Web浏览器必须遵守同源策略,因此客户端的Ajax应用程序一般不能与第三方服务器通信。这一策略规定JavaScript代码只能访问其来源服务器上的数据。事实上,这一策略是非常必要的。如果没有这个策略,那么在另一个域的另一个窗口中运行的JavaScript就有可能修改当前窗口中的HTML。而且,谁也无法确定自己正在查看的页面,是否来源于浏览器地址栏中显示的域。有了这个策略之后,我们就能知道自己正在查看的页面确实来自于正在浏览的域。
对Ajax应用程序而言,这一策略也会限制从其他域以异步方式下载数据;也就是说,只能从加载当前应用程序的服务器上加载数据。考虑到Ajax应用程序可用的众多Web服务,应该说这是一个太不合适的限制。
Tags: HTML/XHTML
为之漫笔(李松峰),本博客专注于Web前后端技术、移动平台开发技术、交互设计和技术翻译。声明一下,因为时常需要外出审稿,而且基本不带笔记本,所以有时可能会迟一点回复大家的留言。