美文网首页
浅谈前端js面试--运行环境(页面加载)

浅谈前端js面试--运行环境(页面加载)

作者: 挨踢的菜鸟 | 来源:发表于2017-07-22 17:22 被阅读0次
  • 浏览器就可以通过访问链接来得到页面的内容
  • 通过绘制和渲染,显示出页面最终的样子
  • 整个过程中我们要考虑什么问题
知识点
  • 页面加载过程
  • 性能优化
  • 安全性

页面加载

  • 从输入URL到HTML的详细过程
  • 加载资源的形式
    • 输入URL(或跳转页面)加载HTML
    • 加载html中的静态资源
  • 加载一个资源的过程
    • 浏览器根据DNS服务器得到域名的IP地址
    • 向这个Ip的机器发送HTTP请求
    • 服务器收到、处理并返回http请求
    • 浏览器得到返回内容
  • 浏览器渲染页面的过程
    • 根据HTML结构生成DOM tree(结构)
    • 根据css生成CSSOM(样式 将css代码进行一个结构化的处理)
    • 将DOM和CSSOM整合形成renderTree(将结构和样式合成渲染树)
    • 根据renderTree渲染和展示
    • 遇到<script>时,会执行并阻塞渲染
image.png
为何要把css放在head中?

好处是浏览器加载完css样式后直接知道规则,如上例子加载到div时就知道div的高度和宽度了,假设将css样式放在div后面,在页面渲染时,先执行div的默认样式,突然又会执行新的样式,出现跳动和卡动现象,用户体验极差,性能极差,本来一次能做的事情却做了两次。

image.png

为何要把js放在body最下边?
js不会阻止body里面dom结构渲染,不会发生阻塞,让页面更快的出来,同时script能拿到所有标签。

image.png

第9行图片是异步请求的,图片标签先加载,即使src资源很大也不会阻止所有DOM渲染。此时img标签已经可用了。

  • window.onload和DOMContentLoaded区别
image.png

相关文章

  • 浅谈前端js面试--运行环境(页面加载)

    浏览器就可以通过访问链接来得到页面的内容 通过绘制和渲染,显示出页面最终的样子 整个过程中我们要考虑什么问题 知识...

  • 浅谈前端js面试--运行环境(性能优化)

    优化策略 多使用内存、缓存或其他方法 减少CPU计算、减少网络 入手 加载页面和静态资源 页面渲染 加载资源优化 ...

  • 浅谈前端js面试--运行环境(安全性)

    场景的前端安全问题有哪些 XSS 跨站请求攻击在新浪博客写一篇文章,同时偷偷插入一段 攻击代码中,获取COOKIE...

  • 一次内存泄露排查

    项目背景 后台在管理界面直接编辑js,然后前端直接运行加载此 js,并且此页面不会刷新(指定的 F5 这种刷新),...

  • 前端错误监控

    前端错误的分类: 1、即使运行错误(js代码错误) 2、资源加载错误。 错误的捕获方式 1、即使运行错误(js代码...

  • 全局作用域和局部作用域

    全局作用域:html加载过程中,提供给js运行的总环境。全局作用域销毁,关闭当前页面的时候 局部作用域:函数运行的...

  • js & jQuery 相关链接

    jquery获取当前页面的URL信息jQuery 教程移动端Web页面适配方案浅谈js运行机制(线程)JavaSc...

  • Python 实战:week1 爬取霉霉图片

    运行效果: 作业代码: 项目代码 小结 异步加载 通过 JS 实现动态加载数据,在与当前 HTML 页面的加载并不...

  • 错误监控

    前端错误的分类 即时运行错误—代码错误 资源加载错误(比如图片加载错误,CSS加载错误,JS加载错误等) 错误的捕...

  • nginx 的缓存问题 - ERR_CONTENT_LENGTH

    前端页面加载css、js、ttf文件的时候,出现 ERR_CONTENT_LENGTH_MISMATCH 的报错情...

网友评论

      本文标题:浅谈前端js面试--运行环境(页面加载)

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