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

时间:2011-01-25 04:09:52

标签: jquery ajax

目前我正在使用像这样的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有一个switch语句,它根据通过url中的get参数接收的值执行各种命令。

所以我实际上并没有通过ajax函数的data参数传递任何内容。我只是通过网址告诉php脚本我想做什么。

今天我突然想到我可以使用load()函数。我可以这样做以获得与上面相同的结果:

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

只要我使用GET方法,上面更短的代码似乎是执行ajax请求的更好方法。但我不太了解jQuery或ajax自己做出决定。那我应该用哪个?并且load()在这种情况下比使用ajax()更好的性能?

2 个答案:

答案 0 :(得分:3)

在内部,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);
    }
});

答案 1 :(得分:0)

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

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