美文网首页
输入url后及闭包

输入url后及闭包

作者: 宁不空 | 来源:发表于2019-08-14 00:21 被阅读0次

复杂的事情讲清楚,你才是真正明白了。


浏览器输入URL之后发生了什么

一共发生了6件事

  1. DNS解析
    • 将域名解析为IP地址
    • 首先读取浏览器缓存
    • 浏览器缓存没有,会读取本地缓存
    • 本地缓存没有,会读取路由缓存
    • 路由缓存没有,会读取运营商缓存
    • 运营商也没有的话,会递归匹配,从com依次,如果没有匹配到,返回报错
  2. tcp握手
    • 三次握手
    • 第一次是浏览器发送请求,通知服务器,让服务器做好准备接收
    • 第二次是服务器发送,通知浏览器已经做好准备,浏览器可以发送
    • 第三次是浏览器再次发送,确保正确连接
  3. 发送请求
    请求报文 协议,请求头,请求体等
  4. 接收响应
    响应报文
  5. 渲染页面
    浏览器调用各种解析器 解析返回的页面
    html 解析为dom树
    css解析为 cssom
    合并生成渲染树
    计算布局 生成页面
    这个步骤会执行多次
  6. 断开连接 tcp四次挥手
  • 浏览器发起,发送给服务器,告诉服务器请求发送完毕,可以关闭
  • 服务器发起,告诉浏览器,请求接收完毕,可以关闭
  • 服务器发起,告诉浏览器,响应发送完毕,可以关闭
  • 浏览器发起,告诉服务器,响应接收完毕,可以关闭

闭包

闭包可以理解为一个对象保存着以键值对存在的值
形成条件:

  1. 函数嵌套
  2. 内部函数可以访问外部函数的局部变量
    优点:
    延长外部函数局部变量的生命周期
    缺点:
    内存泄露,所以在闭包使用完毕之后应该及时清除

例子:

/**
*  按照形成条件可以很简单的写出一个闭包函数
*/
function fn() {
  var count = 1;
  return function() {
    count++;
    console.log(count);
  }
}
var fn2 = fn();
fn2(); // 输出2;
fn2(); // 输出3
闭包.png

从输出可以看出闭包延长了外部函数fn中的局部变量count的生命周期

相关文章

  • 输入url后及闭包

    复杂的事情讲清楚,你才是真正明白了。 浏览器输入URL之后发生了什么 一共发生了6件事 DNS解析将域名解析为IP...

  • iOS开发之Swift篇(7)—— 闭包

    目录 版本 闭包的定义及使用 尾随闭包 逃逸闭包 版本 Xcode 11.0Swift 5.1 闭包的定义及使用 ...

  • 2019-03-22

    牧客科技 HTML5的了解 js闭包 js继承 ajax优缺点 http与https比较 浏览器输入url过程 l...

  • 闭包歧义

    // 闭包歧义 // 完整的闭包是将闭包的输入和输出都写上,然后用 in 隔离 参数和实现 // Void 其实是...

  • Python 闭包使用注意点

    1 Python 闭包 今天,聊下 python 的闭包。在函数编程中经常用到闭包。 闭包是什么,它是怎么产生的及...

  • 数据团Python_10.3 URL参数设置及网络请求

    10.3 URL参数设置及网络请求 request请求后,解析数据。BeautifulSoup包。 Beautif...

  • JavaScript 作用域链及闭包

    作用域链及闭包

  • swift 逃逸闭包和非逃逸闭包的区别

    swift 逃逸闭包和非逃逸闭包的区别 逃逸闭包:闭包做为函数的参数传递时,在函数体结束后被调用,我们就说这个闭包...

  • 【web】输入url后……

    (1) DNS服务器解析域名,找到对应服务器的IP地址; (2)和服务器建立TCP三次握手连接; (3)发送HTT...

  • 关于逃逸闭包

    逃逸闭包:当函数执行结束后,才去调用函数内部的闭包,叫做逃逸闭包非逃逸闭包当函数执行过程中,执行的函数内部的闭包,...

网友评论

      本文标题:输入url后及闭包

      本文链接:https://www.haomeiwen.com/subject/ecfwjctx.html