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

    想要这样一间小木屋,夏天挫冰吃瓜,冬天围炉取暖.
  • 相关阅读:
    使用Unity5.1进行VR开发的配置(最新的未必是最好的!!!)
    从单幅深度图识别人体姿态
    工作中编写存储过程小记
    【积累】根据CheckBox的不选中 ,用JQuery 清除 RidaoButtonList 的选中项
    【积累】LinqToSql复合查询结果转DataTable数据
    MSSSQL 脚本收藏
    VS2010历史记录清理
    PowerDesigner16工具学习笔记-建立CDM
    Android 安装过程中的问题
    Unity3D集成SVN进行版本控制
  • 原文地址:https://www.cnblogs.com/lianer88/p/9950872.html
Copyright © 2011-2022 走看看