Javascript jquery与googleclosureAjax
我一直在研究ajax调用的google闭包库,我已经通过了一个如下示例:Javascript jquery与googleclosureAjax,javascript,jquery,ajax,google-closure-library,Javascript,Jquery,Ajax,Google Closure Library,我一直在研究ajax调用的google闭包库,我已经通过了一个如下示例: goog.events.listen(request, "complete", function(){ if (request.isSuccess()) { // do something cool } else { // display an apologize message } }); 与jquery示例不同,jquery示例如下所示: $.ajax({url: url, succ
goog.events.listen(request, "complete", function(){
if (request.isSuccess()) {
// do something cool
} else {
// display an apologize message
}
});
与jquery示例不同,jquery示例如下所示:
$.ajax({url: url, success: function () { }, error: function () { }});
我已经看到谷歌关闭弹出更多,但在这种情况下,优势或劣势是什么?jquery库调用对于像这样与ajax相关的调用似乎简单得多。您的闭包示例不完整。我假设就在您的示例之前,您创建了一个
XhrIo
实例,并在其上调用了send()
如果您想要一个与发布的jQuery示例等效的更简单的闭包,可以使用staticXhrIo.send()
。它看起来像这样:
goog.net.XhrIo.send(
url,
function(event) {
var xhr = event.target;
if (xhr.isSuccess()) {
// do something cool
} else {
// display an apologize message
}
});
这无疑比jQuery版本更笨重。一般来说,闭包的设计考虑了面向对象编程(与jQuery形成鲜明对比,jQuery主要是静态函数)。这可能适合您,这取决于您是否喜欢以面向对象的方式编写JS代码
在这种特殊情况下,如果您创建一个可重复用于多个请求的
xrio
对象(例如,您可以对其setTimeoutInterval()
以用于所有请求),您可能会从闭包中获得一点好处。如果您关心内存,闭包还可以让您更明确地控制垃圾收集。$.ajax({url:url,success:function(){},error:function(){})代码>-您缺少jQuery版本的ajax回调函数。这只是一些伪代码来说明这个想法,但我已经编辑过了。