网络编程
位置:首页>> 网络编程>> JavaScript>> Javascript 回调和事件(翻译)(2)

Javascript 回调和事件(翻译)(2)

作者:mingcheng 来源:gracecode.com 发布时间:2009-03-28 11:47:00 

标签:JavaScript框架,回调,事件

麻烦

OK,我们回来看下常见框架中的回调系统。首先,我们看下 jQuery 的(因为它很流行):

$(document).ready(function() {  console.log("Init: 1");  DOES_NOT_EXIST++; // 这里会抛出异常});$(document).ready(function() {  console.log("Init: 2");});

然后控制台中输出了什么?

Init: 1Error: DOES_NOT_EXIST is not defined

这样问题就很明了了。回调系统其实很脆弱 -- 如果中间有段代码抛出了异常,那么其余将不会被执行。想象下在实际情况中,这后果可能会更严重,譬如有些糟糕的插件可能会“一粒老屎坏了一锅粥”。

其他的框架,Dojo 的情况和 jQuery 类似,不过 YUI 的情况有些许不同。在它的回调系统中,使用了 try/catch 语句避免因异常发生的中断。但有个小小的负面影响,就是看不到相应的异常了。

YAHOO.util.Event.onDOMReady(function() {  console.log("Init: 1");  DOES_NOT_EXIST++; // 这里会抛出异常});YAHOO.util.Event.onDOMReady(function() {  console.log("Init: 2");});

输出:

Init: 1Init: 2

那么,有无完美的解决方案呢?

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com