我应该使用哪个jQuery函数:load()或ajax()?

问题描述:

目前我使用的AJAX功能,像这样:我应该使用哪个jQuery函数:load()或ajax()?

$.ajax({ 
    type: 'get', 
    url: 'ajax_requests.php?action=get-list-of-all-users', 
    data: '', 
    success: function(output) { 
     $('div.showHere').html(output); 
    } 
}); 

的PHP文件ajax_requests.php具有执行基于其接收通过在URL中的GET参数值的各种命令的switch语句。

所以我实际上并没有通过任何通过ajax函数的data参数。我只是告诉PHP脚本我想通过url完成。

今天我发现我可以很好地使用load()函数。我现在用的是GET方法好像在更短的代码上面是执行Ajax请求的更好的方式

$('div.showHere').load('ajax_requests.php?action=get-list-of-all-users'); 

只要我可以做这得到与上述相同的结果。但是我不太了解jQuery或Ajax自己做决定。那我该用哪一个?和load()在这种情况下比使用ajax()更好的性能?

在内部,load几乎是你以前明确做的确切过程。无论你喜欢什么,如果存在性能差异,则可以忽略不计。

表演会发生的唯一地方是,在您的load示例中,您只搜索div.showHere一次。在ajax示例中,每次请求完成时都会执行该搜索。如果这个请求经常被触发,这将是一个小而重要的性能差异。

但是,具体问题与实现这两个方法,而不是方法自己做的,它可以很容易地通过缓存搜索的结果解析:

var showHere = $('div.showHere'); 
$.ajax({ 
    type: 'get', 
    url: 'ajax_requests.php?action=get-list-of-all-users', 
    data: '', 
    success: function(output) { 
     showHere.html(output); 
    } 
}); 
+0

所以你通过将元素说在一个变量中搜索外部ajax请求会导致它被缓存,并消除来自jQuery每次搜索文档的性能问题? – 2011-01-25 04:26:53

真的没关系。我唯一需要补充的是,如果你打算增加更多的功能,那么我会使用$ .ajax,因为无论如何你都需要。 .load正在做同样的事情。

至于性能,它们将几乎相同,但除非您有严重的性能问题,否则不应该担心。