标签‘2013’

Ajax应用事件处理及浏览器内存泄漏实践

事件处理是 Ajax 应用中的重要组成部分,也是应用动态变化的源动力。本文详细介绍了浏览器中的事件处理相关的内容,包括注册事件监听器、事件发生之后的传播机制、编写事件监听器等,还介绍了 Dojo 对事件处理提供的支持。最后介绍了与浏览器内存泄露和性能相关的最佳实践。

浏览器中的事件是 Ajax 应用动态变化的源动力。用户通过输入设备(主要是键盘和鼠标)与应用进行互动。对于用户不同的动作,如点击鼠标左键、右键、或是按下键盘上的回车键,浏览器会产生与之对应的事件。这些事件按照一定的规则在当前文档树中传播。应用可以根据自己的需要,对特定的事件进行处理,以响应用户的动作。这种事件驱动的方式,不仅在 Web 应用中被使用,在桌面应用中也广泛流行。本文详细介绍了浏览器中事件处理的各个方面,包括事件监听器的注册、事件的传播、事件处理和其它高级话题。本文还介绍了如何使用 Dojo 提供的 dojo.connect()。本文中使用的 Dojo 版本是 1.4。下面首先介绍如何注册事件监听器。

注册事件监听器

注册事件监听器的目的是在事件发生的时候添加相应的处理逻辑。浏览器中的事件处理采用经典的观察者(Observer)设计模式。对于可能产生的各种事件,Ajax 应用通过脚本在节点上关注自己感兴趣的事件,并添加相应的处理逻辑。当相应的事件发生并传播到监听器注册的节点时,处理逻辑会被调用。 查看更多...

两种方式使用Dojox.grid.DataGrid

Dojo的widget机制设计的很不错,默认提供了很多好用的widget,其中DataGrid就是最常用的一种,正常情况下,很多人会选择使用声明式的引入,就是在页面上写入任意html标签,指定dojoType为Dojox.grid.DataGrid,当然,既然是widget,也就支持另外一种方式,也是我比较喜欢用的方式,即编程式引入。

第一种

先通过引入dojo.data.ItemFileWriteStore,构建test_store,简单的理解,即数据源,对应DataGrid的store。dojo的dojo.data.ItemFileWriteStore可以方便的使用ajax请求的相应数据。下面是示例代码: 查看更多...

回顾2012,展望2013

2012,曾是诸多造谣生事者造肆的年度,也正是我真正走上社会的起始点。

很久没有写心情了,似乎是因为一直处在紧张与困惑的节奏中腾不开身,又似乎是时间冲淡了我想表达又不知道如何表达的那种情感,久而久之,就忘却了来收敛一下自己内心的澎湃与激昂。

回忆2012,总有那么一些不称心、不如意,但至少还是熬过来了。从去年春节啃着剩馒头干、吃着煮烂的冷冻水饺,到租一间十几平米的一居室开始蜗居,期间经历了种种读书期间所没能感受到的苦楚,却总得悄悄的叹口气继续等待那丝可能存在的曙光。就这样,用着50k的网络,蜗居在小小的十平米,一天一到两顿盒饭,不分昼夜的找工作、投简历。 查看更多...