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();//发送数据
    }

    想要这样一间小木屋,夏天挫冰吃瓜,冬天围炉取暖.
  • 相关阅读:
    是否是轮回(续)
    夜雨做成秋
    53分
    浮生六记 一成长星和月
    企业信息化常见缩略语汇总
    是否是轮回
    对信号集操作函数的使用方法和顺序
    fcntl.h
    关于linux信号量的基本使用
    linux 共享内存
  • 原文地址:https://www.cnblogs.com/lianer88/p/9950872.html
Copyright © 2011-2022 走看看