闭包&http

在输入url后浏览器会发生什么

1DNS域名解析:在操作系统中DNS缓存中搜索读取系统hosts文件,查找是否有对应的ip,向本地配置的首选DNS服务器发起域名解析。

2,建立TCP连接:为了准确的传输数据,TCP协议采用了三次握手策略。

3,发出http请求

4接受响应结果:(状态码):

200:请求正常处理

204:请求处理成功但没有资源可返回

206:对资源的一部分请求

301:永久重定向

302:临时性重定向

304:缓存中读取

400:请求报文中存在语法错误

401:需要有通过http认证的认证的信息

403:访问被拒绝(需要权限)

404:无法找到请求资源

404:请求不被允许

500:服务器端在执行时发生错误

503:服务器处于超负荷或者正在进行停机维护

5浏览器解析html:浏览器按顺序解析html文件,构建DOM树。在解析到外部的cssjs文件时向服务器发起请求下载资源

6浏览器对页面进行渲染呈现给用户

闭包

变量的作用域:(函数内部可以直接读取全局变量)

概念:闭包就是能够读取其他函数内部变量的函数,就是将函数内外部连接起来的桥梁

代码:

var a=9;                             

Function f1(){         Function f1(){

                      var a=9;

                        }  

  alert(n);            alert(n);

        }

f1();   //9                  // erroer

*在函数外部自然无法读取函数内的局部变量

*在函数内部声明变量一定要用var命令,否则你实际上声明了一个全局变量

代码:Function f1(){

        a=9;

      }  

 alert(n);

   // 9

*如何从外部读取局部变量:在函数内部再定义一个函数

Function f1(){

Var a=9;

   Function f2(){

  Alert(a);    //9

  }

}

*既然f2可以读取f1中的局部变量,那么只要把f2作为返回值,我们就可以在f1外部读取它的内部变量。

代码:

Function f1(){

   var a=9;

Function f2(){

Alert(a);

}

Return f2

         }

var result=f1();

Result();    //9

代码2

function f1(){

  var n=999;

   Add=function(){n+=1}

function f2(){

  alert(n);

}

Return f2;

}

var result=f1();

Result();   //999

add();

result();    //1000

解释:f2被赋给了一个全局变量,这导致它始终在内存中,而f2的存在依赖于f1,所以f1页始终在内存中,不会被垃圾回收机制回收。

使用时注意点:

闭包会使函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在ie中可能导致内存泄漏;解决方法:在退出函数之前将不使用的局部变量全部删除。

内存泄漏:不在用到的内存没有及时释放就叫内存泄漏。

getpostAjax中的区别:

aget:将参数跟在url后面

   Post:作为http消息的实体内容发送给服务器

bget:请求数据会被浏览器缓存(会有安全问题)

       提交的数据最多只能是1024字节

Cpost用于创建资源资源的内容会被编入http请示的内容中,如:处理进货表单,在数据库中加入新数据行等

   Get:请求为了查找资源,html表单数据仅用来帮助搜索。收集的数据及html表单内的输入字段名称的总长不超过1024个字符。

2cookiesessionstoragelocalstorage的区别

共同点:都是保存在浏览器端,且同源的

区别:

a,数据始终在同源http中携带,数据在浏览器和服务器中来回传递,存储大小不能超过4k,因为每次http请求都会携带cookie,它只适合保存很小的数据,如:会话标识。而后两者不会主动把数据发给服务器,仅在本地保存,存储可达5m

b,数据有效期不同:

Cookie:只在设置的cookie过期时间之前一直有效

Sessionstory:尽在当前浏览器窗口关闭之前有效

Localstory:始终有效,浏览器窗口关闭依然有效

转载于:https://www.cnblogs.com/xxjj/p/7570920.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值