• jQuery源码中的Ajax--getScript()/getJson()方法


    一、$.getScript()方法

    • 有时候,在页面初次加载时就取得所需的全部Javascript文件是完全没必要的,可以按需所取。
    • 该函数用于动态加载JS文件,并在全局作用域下执行文件中的JS代码。
    • 该函数可以加载跨域的JS文件。请注意,该函数是通过异步方式加载数据的。
    • 该函数属于全局jQuery对象。

      语法:

    $(function(){
            $("send").on("click",function(){
                $.getScript("script.js",function(){
                    //回调函数
                   //data:返回的数据
         //textStatus:描述状态的字符串
                });
            });
    });            

      $.getScript()方法的源码:

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

      在该方法中,调用了$.get()方法,幷传入了响应的参数。

      $.get()方法的语法结构如下:

    jQuery.get( url [, data ] [, success ] [, type ] )
    

      $.get()方法等价于:

    $.ajax({
     url: url,
     type: "GET",
     success: success,
     dataType: "script"
    });

    二、$.getJson()方法

    • 该方法用于加载Json文件
    • 如果请求的URL中包括"callback=?"等类似的部分,jQuery会自动将其视作JSONP,并执行对应的回调函数来获取JSON数据。
    • 该函数是通过异步方式加载数据的。
    • 该函数属于全局jQuery对象。

      语法:

    $(function(){
            $("send").on("click",function(){
                $.getJson("test.json",function(data){
                    //回调函数
             //data:返回的数据
             //textStatus:描述状态的字符串
    }); }); });

      $.getJson()方法的源码:

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

      在该方法中,也调用了$.get()方法,幷传入了相应的参数。

      $.getJson()等价于:

    $.ajax({
     url: url,
     type: "GET",
     data: data,
     success: success,
     dataType: "json"
    });

      *$.getScript()和$.getJson()方法都是通过对$.get()方法封装实现的。属于第三层方法。

      *总之:

    第三层 $.getJson()、$.getScript()
    第二层 $.get()、$.post()
    第一层 $.ajax()
  • 相关阅读:
    Vue根据URL传参来控制全局 console.log 的开关
    原来你是这样的毛玻璃
    CSS3边框会动的信封
    判断当前系统当前浏览器是否安装启用 Adobe Flash Player,检查在chrome中的状态
    随笔一个正则
    PHP实现栈数据结构
    php实现一个单链表
    php中按值传递和按引用传递的一个问题
    利用shell脚本或者php移动某个文件夹下的文件到各自的日期组成的目录下
    php中DateTime、diff
  • 原文地址:https://www.cnblogs.com/niulina/p/5689749.html
Copyright © 2020-2023  润新知