Jquery ajax调用哪个最好?

时间:2011-09-23 19:58:49

标签: jquery ajax

我在网上发现了有关jquery ajax请求的信息。

load():将一段html加载到容器DOM中。

$.getJSON():使用GET方法加载JSON。

$.getScript():加载JavaScript。

$.get():如果您想进行GET调用并对响应进行广泛播放,请使用此选项。

$.post():如果您想进行POST调用并且不想将响应加载到某个容器DOM,请使用此选项。

$.ajax():如果您在XHR失败时需要执行某些操作,或者您需要动态指定ajax选项(例如,cache:true),请使用此选项。

但它并没有说出最适合将它用于什么的性能。哪个最适合验证?哪种速度最好,最相似。

我以前从未使用过jQuery ajax,并且在你使用jQuery ajax请求时,你们中有些经验丰富的程序员想知道你们最适合自己的需求吗?

什么是JSON我知道它被称为javascript对象表示法但是什么意思?

5 个答案:

答案 0 :(得分:4)

没有更好或更坏。使用适合的情况。

答案 1 :(得分:0)

它们只是具有特定参数子集的$.ajax()的简写。没有比另一个“更好”,无论哪种方式适合你的情况都是“最好的”。

答案 2 :(得分:0)

我会建议$ .ajax()获得灵活性,它会为您提供更多选择..

$ .ajax()函数是jQuery发送的所有Ajax请求的基础。通常不必直接调用此函数,因为$ .get()和.load()等几个更高级别的替代品可用并且更易于使用。但是,如果需要不太常见的选项,可以更灵活地使用$ .ajax()。

答案 3 :(得分:0)

如果您查看文档,get会使用ajax。另外看看这个

http://api.jquery.com/jQuery.ajaxSetup/

它可以为你节省一些打字。

答案 4 :(得分:0)

像金吉夫所说的那样,每个人都要通过$.ajax方法。

load()将get / post类型设置为在后台执行其他操作,以确保在所选元素上填充响应,然后调用$.ajax。下面是代码。

load: function( url, params, callback ) {
    if ( typeof url !== "string" && _load ) {
        return _load.apply( this, arguments );

    // Don't do a request if no elements are being requested
    } else if ( !this.length ) {
        return this;
    }

    var off = url.indexOf( " " );
    if ( off >= 0 ) {
        var selector = url.slice( off, url.length );
        url = url.slice( 0, off );
    }

    // Default to a GET request
    var type = "GET";

    // If the second parameter was provided
    if ( params ) {
        // If it's a function
        if ( jQuery.isFunction( params ) ) {
            // We assume that it's the callback
            callback = params;
            params = undefined;

        // Otherwise, build a param string
        } else if ( typeof params === "object" ) {
            params = jQuery.param( params, jQuery.ajaxSettings.traditional );
            type = "POST";
        }
    } // after this is calls $.ajax and passes in the parameters 

$。getJSON():这只是调用$.getdataType设置为json$.get依次调用$.ajax

getJSON: function( url, data, callback ) {
        return jQuery.get( url, data, callback, "json" );
    }

$。getScript():您猜对了,只需调用$.get并将dataType作为script传递。

getScript: function( url, callback ) {
        return jQuery.get( url, undefined, callback, "script" );
    },

$。get()& $ .post():这两个方法也调用$ .ajax。

jQuery.each( [ "get", "post" ], function( i, method ) {
    jQuery[ method ] = function( url, data, callback, type ) {
        // shift arguments if data argument was omitted
        if ( jQuery.isFunction( data ) ) {
            type = type || callback;
            callback = data;
            data = undefined;
        }

        return jQuery.ajax({
            type: method,
            url: url,
            data: data,
            success: callback,
            dataType: type
        });
    };
});

总之,使用适合目的的任何东西,只取决于你打算做什么。性能应该相同,因为您已经看到它们都经历了$.ajax