2013年02月 归档

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

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

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

注册事件监听器

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

关于借钱的故事

上个月,我的一个朋友某某因为生意上出了点意外,急需要一笔钱,当他打电话给我时,我感觉有一点奇怪,因为我们的关系仅仅只限于一般朋友,故此,就有了一点点犹豫。我说:一会儿我给你电话吧。
  我考虑了十分钟,决定把这钱借给他。
  上个星期,他把钱还给了我,之后请我喝茶。
  他说:你答应借钱给我还真出乎我的意料之外!
  我问:为什么?
  他回答:打你电话之前我已经打过9通电话,你是第10个。当你说“一会儿给你电话”时,我认为我需要打第11通电话了。我是按照亲疏关系打的这10通电话,越打到后面越没有信心,所以,打你电话已经是死马当成活马医的心态了。
  之后,就这个话题我们谈论了许多,他总结性地说了一句话:如果不是这次借钱,我还以为我有很多朋友,现在我才明白,原来我是这么孤独。 查看更多...