我的javascript总结
(一)有关框架
(二)文件组织与代码组织
(三)JS与FLASH交互
(四)ajax局部刷新与RPC
(五)JS与页面元素--获取设置样式与绑定事件
(五)JS与页面元素--创建调整与关联
(六)浏览器兼容性问题
prototype:
刚开始用的是prototype,我现在都忘光了。只记得是如何开始讨厌prototype的,有一次遇到一个问题,我定义了一个next(),然后我写onclick="next()",却没有执行到我定义的next(),查出是它执行了元素本身的next()方法,这个方法是prototype给他的,由此推论,它侵入于element的其他方法也有此问题,我很恶心它这么干。为此我还专门写了一个脚本去检查侵入性,见ic/251422#693230,除了用它检查框架的侵入性外,还用于检查自己的脚本中有没有无意中创建了全局变量。
jQuery:
抛弃prototype之后,工作上一直用jQuery。
好的方面:
短小精悍,特别赞他操作DOM的DSL,方法名短且实现风格统一,且覆盖到了DOM的方方面面。有了它你不用写长长的DOM方法。AJAX也很出色,$("sel").load(),$.get(),$.post().$.getJSON(),$.getScript()针对不同需求包装了不同的AJAX请求配置。
不好的方面:
CSS选择器,确实很强大,可我认为我只需要实现以下几种便可了。其它代码完全多余
jQuery("#id")
jQuery("")
jQuery("#id> ")
jQuery("#id ")
jQuery("#id")
jQuery("")
jQuery("#id> ")
jQuery("#id ")
插件质量方面。我用过的插件我几乎都改过,有的是有小BUG,有的是功能不全,有的文档示例不全。用过的有jScrollPane, jslider, bo, xxx tree, imageAreSelect ,只有validation稍满意。
要用插件,大部分是出于UI widget的需求。jQuery UI只用过slider,我特别讨厌jQuery UI widget(无论插件还是官方)的接口风格和jQuery操作DOM的风格一样。当然它的THEME也一样的难看,虽然有很多种。我比较喜欢YUI的样子,很APPLE。UI方面是jQuery的软肋。基于此,如果YUI3的API接口不像YUI2那样的不统一和复杂,如果网站UI widget方面用的比较多的话,YUI也许比jQuery更适合。
YUI:
关于YUI,plete和calendar,slider,写SUI的时候,也尝试过其他组件。YUI文档和API很全,UI漂亮,但API有点太过复杂。CSS方面也是,得在body上加一个yui的class,导致对原有的css产生影响。相对于jQuery,它更重量级,好在它有loader来解决依赖的问题。用过WEB QQ的应该很满意,WEB 。也是(有人不知道不)。对于YUI3,那是相当的期待。
Ext:
做WEB软件一直用的是Ext,尝试过两种形式,一种是iframe,只用了表格,一种是单页面,ponent。第一种我只用来做了简单的项目,通过简单配置来实现CRUD。我主要讲下单页面的,用EXT做业务复杂的WEB软件,不能一个一个页面独立开来做,那样会累死,还是得应用模板(可以用SUI),每种模板相对应一个控制页面组件的抽象类(VIEW控制层),套用此模板的页面代码继承此抽象类来实现自己的特殊逻辑。当然和后台交互的MODEL也有是以独立的类存在的,一句话,在前端我又分了三层。见图示:
(webApp,sui,ext也都是JS)
由于EXT有强大的STORE,它使得我们前端引用及操作数据的代码可以通过它和后端脱离出来。有一点小小的问题,就是EXT和ROR交互起来并不是很方便,我自己实现了符合REST的writer来操作数据。
Ext的UI组件丰富,也很成熟,虽然性能在IE上表现不佳,但这是IE的问题。。
有了Ext,其实离做WEB软件还很远,因为界面和ajax形式的数据交互全部由前端来做的话,前端要很成熟的框架来搭架子,有个框架叫JS MVC,也许可以借鉴学习。
最后,上2张图养眼,
我的javascript总结 来自淘豆网m.daumloan.com转载请标明出处.