• 对于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全局变量会产生很多问题。

  • 相关阅读:
    App的开发过程(转载)
    一款APP的完整开发流程 (转载)
    JS判断是否是数组的四种做法(转载)
    easyui datagrid Column Group 列组、 复杂表头 嵌套表头 组合表头 (转载)
    php bootstrap-datetimepicker
    Echarts实现Excel趋势线和R平方计算思路
    前端项目开发流程(转载)
    对有序特征进行离散化(继承Spark的机器学习Estimator类)
    Spark ML 中 VectorIndexer, StringIndexer等用法(转载)
    Z-Score数据标准化(转载)
  • 原文地址:https://www.cnblogs.com/ww01/p/14649683.html
Copyright © 2020-2023  润新知