无侵入与可用性层

使用jQuery一段时间的感想

早在使用WP之前的很久,我就听说了jQuery了,那个时候,只是惊叹于jQuery的视觉效果,然后记住了这个名字,但是一直也没有开始学习。直到我开始折腾WP这个程序,模板,插件,我才开始更广泛深入地接触jQuery。

在学习jQuery的过程中,我也看了一些牛人关于js的观点,并且从内心深处对此表示深刻认同。

无侵入

js代码应该单独的放在一个文件里面,而不应该混杂在html代码中。现在的页面设计也要遵循数据,表现,行为(动作?)分离的原则。html代码就是纯数据,按照数据本身的逻辑关系来组织,而页面外观,则是纯表现,使用css来指定,最后是行为(动作?或者事件响应?),使用js来实现。

三者的分离,有多种好处,更清晰的逻辑结构,更纯粹的数据,更好的可维护性,而且还对搜索引擎非常友好。外部引入的js和css不会对爬虫分析页面内容造成太大的影响。

所以,在编写js的时候,就要竭尽全力地去将js代码与页面完全剥离开来,至少要做到在内部,完全不出现js代码。

这种代码编写方式,就要求我们写js的时候改变一些陋习,并且更加地依赖于文档对象模型DOM。好,说道这里,问题就来了,使用DOM模型的话,遍历DOM树,就是关键了,如果不使用框架的话,就要自己写代码遍历,但是,由于那个恶心的问题,就是浏览器兼容性问题,各个浏览器实现的DOM模型和支持的js语法有着细微的差别,自己遍历DOM会痛苦无比。jQuery在这个方面,做得非常出色,基本上包揽了一切肮脏的工作。让人写起代码来格外愉快。

实在是很喜欢jQ在DOM遍历中的便捷。

可用性层

关于可用性层,是又一个现在很流行的概念。在十分关注用户体验的Web 2.0时代,页面可用性,已经成为了考量一个页面的质量的关键标准。

但是js由于其巨大的不稳定性,经常失效;还有就是早先对于js的滥用(如该死的弹出广告,漂浮广告,恶意浏览器插件),使得很多用户对js深具戒心,经常有些极端的用户干脆关闭js,斩草除根。

在这种环境下,js的应用只能在夹缝中艰难求存。于是乎,js成了一个附加的可用性层。“附加”代表可有可无。我现在设计页面,写js,也是在这么一种假设下写的,即“用户可能禁用了js”。追求的效果就是,如果用户没有开启js,那么你能看到全部内容,保证了页面可访问性,牺牲了可用性。而如果开启了js,那么用户将得到更加有趣的体验。

于是乎,我就产生了这么一种感觉,页面上附加的所有js应用,有一种“事务”的特征。我们的术语叫做“transaction”。主要就是其中原子性的特点。如果支持js,那么你觉得这个页面是一个功能丰富的ajax应用,非常炫目。如果不开启js,那么你觉得这是一个普通页面,你甚至没法觉察到这个页面背后其实有着大量的js代码。他们只是简单的被完全的,干干净净的,彻彻底底的拿掉了。

关于这一点,我使用jQ的体验,还是由于jQ那操纵DOM的优秀能力,使得这种理念或者这种理念指导下的开发成为了一件让人愉快的事情。

总结

上面两点是我在学习使用jQ的过程中的一些感想,写出来与大家分享一下。我接触Web开发的时间非常短,基本上没有什么经验可以谈的,上面的很多的观点,来自很多我认为牛的人,包括ppk(这个人让我对js的认识更深了一层),以及我订阅的一些牛人的博客里面展示的代码片段所传达的思想。