开篇

开篇

  • 一个URL 请求到展示了界面 进过了那些流程

一个URL 请求到展示了界面 进过了那些流程

几乎每次面试 都会 问这些问题,能打出来 ,但是不深入。因此 做个加强版。

  • cache 缓存,强缓存 协商缓存

  • DNS 解析

  • tcp/udp

  • nginx / openresty 缓存验证

  • cdn 缓存命中率 (缓存更新频率)回源

  • 浏览器 相关

    • 事件循环,消息队列
    • 微任务 ,宏任务
    • 进程 线程 协程
    • 渲染流程
    • 解析流程
    • 光栅化
    • 重绘 重排 合并
    • 堆 、栈
    • 内存 泄漏、内存膨胀、频繁GC
    • javascript 执行机制
      • 编译 运行
      • 作用域 快级别作用域
      • 作用域链 闭包
      • 调用栈

    等等。。。。

而外的

	1. 事件频繁触发可能造成的问题?
        1). 一些浏览器事件:window.onresize、window.mousemove等,触发的频率非常高,会造成浏览器性能问题
        2). 如果向后台发送请求,频繁触发,对服务器造成不必要的压力
    
    2. 如何限制事件处理函数频繁调用
        1). 函数节流
        2). 函数防抖

    3. 函数节流(throttle)
        1). 理解: 
            在函数需要频繁触发时: 函数执行一次后,只有大于设定的执行时间后才会执行第二次
            适合多次事件按时间做平均分配触发
        2). 场景:
            窗口调整(resize)
            页面滚动(scroll)
            DOM 元素的拖拽功能实现(mousemove)
            抢购疯狂点击(click)
            
    4. 函数防抖(debounce)
        1). 理解:
            在函数需要频繁触发时: 在规定时间内,只让最后一次生效,前面的不生效。
            适合多次事件一次响应的情况
        2). 场景:
            输入框实时搜索联想(keyup/input)

你可能感兴趣的:(web回炉重造,回炉重造,前端)