运行环境

2023-08-16  本文已影响0人  扶光_

从输入url到渲染出页面的整个过程

加载资源的形式
html代码 图片 js,css
加载资源的过程
DNS解析:域名->ip地址
浏览器根据ip地址向服务器发起http请求
服务器处理http请求,并返回给浏览器
渲染页面的过程
根据html代码生成DOM树
根据css代码生成CSSOM(css对象模型)
将DOM树和CSSDOM整合Render Tree
根据render Tree树进行渲染
如遇到script标签则暂停渲染,优先加载并执行js代码,然后继续加载

为什么js要放到最后

没有放到最后会突然卡住去渲染js去了 然后又渲染dom树,所以要把js放到最后,简便时间。

windo.onload和DOMContentLoaded的区别

load 会等全部资源加载完之后才会去执行
window.addEventListener('load',function(){})
DOMContentLoaded 不会阻塞图片等资源的加载,dom渲染之后即可执行
document.addEventListener('DOMContentLoaded ',function(){})

web性能优化

<img src='pre.png'  data-realsrc="1.png">
<script>
    var img = document.getElementTagName('img')[0];
    img.src = img.getAttribute('data-realsrc')
</script>

防抖

比如onchange事件,在input框中会频繁触发input事件,防抖就是用户在输入整个信息结束之后在触发input事件

解决方法:就是输入之后几秒后再触发input事件,利用定时器

const input = document.getElementById('input');
let timer = null
input.addEventListener('keyup',function(){ //当键盘键被松开时发生 keyup 事件
  if(timer){
      clearTimeout(timer)
    }
  timer = setTimeout(()=>{
      console.log(input.value)
  },500)
  timer = null
})

节流

当拖拽一个元素时,要随时拿到该元素被拖拽的位置,直接用drag会频繁触发,导致卡顿,节流:无论多块,都会每隔一定时间触发一次

同时也是利用定时器来进行节流

常见的web前端共计方式有哪些

上一篇下一篇

猜你喜欢

热点阅读