zoukankan      html  css  js  c++  java
  • 闭包 跨域~~

    闭包概念
    官方解释:一个拥有很多变量并绑定这些变量的环境的表达式。
    通俗来讲:定义在函数内部的函数,内部函数绑定了函数的变量。
    举例:
     function  a(){
    var num = 1;
    function b(){
       console.log(  num++ );
    }
    return b;
    }
    var c = a();
    c();

    优点:包含变量num的安全,只有通过b函数才能访问,其他途径无法访问到。
    缺点:会使变量一直保持在内存中,使内存消耗大。解决方法是在退出函数之前,将不使用的局部变量全部删除。


    跨域请求,POST并跨域
    只要协议、域名、端口有任何不同,都是不同域。
    (1)、jq的$.ajax,datatype为jsonp,缺点是:只能为get方式请求,不重要参数只能跟随url发送。
    (2)、CORS请求:xmlHttpRequest2,支持IE10+chromeFF
    需要服务器加上header允许请求,支持get/post
    创建举例:
    function createCORSRequest( method, url){
    var xhr = new XMLHttpRequest();
    if( "withCredentials" in xhr ){
    //withCredentials 是XMLHttpRequest2独有的
    xhr.open( method, url, true );
    }else if( typeof XDomainRequest != "undefined"){
    //检测是否XDomainRequest可用,针对IE
    xhr = new XDomainRequest();
    xhr.open( method, url);
    }else{
    //CORS不被支持
    xhr = null;
    }
    return xhr;
    }
    function makeCorsRequest(){
    var url = "http://abcd.org";//前提是支持CORS的
    var xhr = createCORSRequest( "GET", url);
    if( !xhr ){
    throw new Error("CORS不被支持");
    return;
    }
    xhr.onload = function(){
    var responseText = xhr.responseText;
    var title = getTitle(responseText);
    console.log(responseText);//继续其他代码
    }
    xhr.onerror = function(){
    console.log("请求失败");
    }
    xhr.send();//发送数据
    }

    想要这样一间小木屋,夏天挫冰吃瓜,冬天围炉取暖.
  • 相关阅读:
    A1047 Student List for Course [unordered_map]
    .net 事务处理的三种方法
    SQline安装
    LeetCode 21 _ 合并两个有序链表
    LeetCode 191 _ 位1的个数
    LeetCode 268 _ 缺失数字
    LeetCode 190 _ 位运算
    LeetCode 136 _ 位运算
    LeetCode 461 _ 位运算
    LeetCode 125 _ 字符串
  • 原文地址:https://www.cnblogs.com/lianer88/p/9950872.html
Copyright © 2011-2022 走看看