对于HTML的本质认识

1、JS、HTML、CSS的生命周期由浏览器标签页决定

  其实JS、HTML、CSS这些东西组成的:带脚本功能的超文本,这是一个有机结合体,其实是依赖浏览器的一个标签页而存在的,一旦该标签被关闭(销毁),那么这个有机体不论你多么强大,一样灰飞烟灭。

  传统的以前的网页开发,以静态网页为主,开发习惯是一个网页做一件事,直接写死。后来有个动态网页的要求(这里不谈JSP时代,直接跳到前后端分离时代),那就要求各个网页除了各司其职外,还要与其他网页之间能沟通,经典场景是你登录后跳转到我的首页,但是你旧页面的整个DOM树会被删除或者说卸载啊,登录拿到的信息又不能丢,所以诞生了两种方式:①用地址栏带值,因为地址栏是可以跨标签页存在的  ②使用浏览器缓存,因为浏览器缓存是浏览器级的,不是标签级的,所以标签的销毁不会导致缓存的丢失。

  再到后来,以angular、react、vue为代表的框架们,让前端编程的体验和后端达到了相近的体验,所以就一律只修改DOM树,不跳转网页,这样的好处是:JS、HTML、CSS的生命周期稳定下来,不用担心发生跳转后,我的代码运行整个玩完要重来,用户数据丢失,这就跟后端宕机一样可怕,因此我开发时,可以放心的使用内存而不是浏览器缓存,你也许会说,那vue app关掉标签页也玩完啊,是的,但是呢这就相当于用户退出应用程序,跟退出微信一样,用户反而不会觉得这是网页的问题。用户看到页面登录后跳到我的首页,实际上只是把DOM改了一下,这就要求页面模块化开发----基于组件开发。

2、DOM的本质是什么

  在一个标签页里,DOM的本质就是一个复杂的全局结构体变量,说白了就是一个全局变量,在树里可以通过树枝到达树的任何一个角落,认识到这个程度后,我们写代码不过是把东西往树上挂而已,还有就是我们把一些东西隐藏在树上,在需要的时候拿出来用,这样就不用我们使用JS全局变量了,毕竟JS全局变量会产生很多问题。

原文地址:https://www.cnblogs.com/ww01/p/14649683.html