对于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全局变量会产生很多问题。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现