下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

web前端:html页面的渲染And<script>位置的影响

作者:gamecc666     来源: https://www.cnblogs.com/gamecc666/p/11751735.html点击数:803发布时间: 2020-03-10 10:08:56

标签: html数据结构渲染

Web开发

  渲染这个术语被用作"艺术家或作家对于场景的渲染"。另外渲染也用于描述"计算视频编辑文件中的效果以生成最终视频输出的过程"。

  周末加班敲代码的时用到了<script>标签,突然想到了一个问题:别的自测项目里面<script>我把他放在了不同位置,这里应该会对代码的执行与渲染后影响吧?于是今天专门进行了查询,趁机总结以下:

  html文档的解释方式&顺序:

  预备知识:(需要简单理解同步/异步的区别)

  同步,是所有的操作都做完,才返回给用户结果。即写完数据库之后,在相应用户,用户体验不好。

  异步,不用等所有操作等做完,就相应用户请求。即先相应用户请求,然后慢慢去写数据库,用户体验较好。

  html文档的执行,从上到下解释

  解释过程中遇到<link>,<img>标签就会异步进行加载/下载,然后继续向下进行代码的解释

  遇到<script>标签时情况相反,此时会开始同步请求JS文件,然后逐句执行JS文件中的代码,知道所有代码执行完再继续进行html剩余代码的解释

  <script>标签引起的问题And位置的影响:

  解决<script>同步执行导致html脚本解释的阻塞问题:

  方法一=>将<script>放在<body>的最后一部分

  给<script>标签添加defer属性;用法:

  <scripttype="text/Javascript"defer="defer">

  defer作用:属性规定是否对脚本执行进行延迟,直到页面加载为止。(注意:局限于IE浏览器;详细请参考=>请点击这里)

  当然也有缺点:就是如果多个JS脚本的时候没法确定脚本的执行先后顺序

  <script>位置的影响:

  预备知识:(浏览器的工作流程)

  解析html文档成DOM树=>解析css生成CSSDOM树=>CSSDOM树和DOM树结合形成RendingTree=>Layout=>渲染

  将<script>放在<head></head>之间,使其在主页和其他代码之前预先装载,可以实现例如:*.js文件的提前调用

  将<script>放在<body></body>之间,则页面加载后运行(注意放在<body></body>中的位置,这里推荐放在最后)

  小结:

  在head里面,所有的function函数只加载不执行,执行的话是在某件事触发之后(如果有变量的初始化,会导致报错)

  在body里面直接加载并执行

  渲染在电脑绘图中是指用软件从模型生成图像的过程。模型是用严格定义的语言或者数据结构对于三维物体的描述,它包括几何、视点、纹理以及照明信息。

赞(10)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程