高级 jQuery:让好的应用程序变成强大的应用程序
2010-01-14 00:00:00 来源:WEB开发网
清单 6. “活动” 事件模型
$("tr.messageRow").live("dblclick", function() {
if ($(this).hasClass("mail_unread"))
{
$(this).removeClass("mail_unread");
}
通过对代码进行一处小更改,该页面上的所有 tr.messageRow 元素被双击时都将触发这段代码。仅使用 dblclick() 函数是看不到这种行为的,如上所述。为此,我极力推荐您在大部分事件方法中使用 live() 方法。事实上,我认为它对于任何动态地创建页面元素的页面都是必不可少的,不管是通过 Ajax 还是用户交互进行创建,都需要使用 live() 函数而不是事件方法。它很好的实现了易编写和 bug 之间的折衷。
记住:当将事件添加到动态页面元素时要使用 live() 方法。这让事件和页面元素一样具有动态性。
Ajax Queue/Sync
在服务器中使用 Ajax 调用成为 Web 2.0 公司度量自身的度量指标。我们已经多次讨论过,在 jQuery 中使用 Ajax 就像调用普通的方法一样简单。这意味着您可以轻松地调用任何服务器端 Ajax 函数,就像调用客户端的 JavaScript 函数一样。但是美中存在一些不足之处,当对服务器进行过多的 Ajax 调用时,就会出现一些负面效应。如果 Web 应用程序使用的 Ajax 调用过多,就会导致问题。
第一个问题是一些浏览器限制打开的服务器连接的数量。在 Internet Explorer 中,当前版本仅支持打开 2 个服务器连接。Firefox 支持打开 8 个连接,但仍然是一个限制。如果 Web 应用程序不对 Ajax 调用进行控制,它就很可能打开 2 个以上的连接,尤其是服务器端调用属于时间密集型调用时。这个问题可能源于 Web 应用程序的不良设计,或用户不对请求加以限制。不管是那种情况都是不可取的,因为您不希望由浏览器决定使用哪些连接。
更多精彩
赞助商链接