JS-10(cookie,存储区别,DOM)

137 阅读3分钟

JS-10(cookie,存储区别,DOM)

sessionStorage

是浏览器本地存储的一种方案,是临时储存,当浏览器关闭的时候,存储的内容,自然清空。跨页面通讯,必须是从当前页面跳转过去的页面才能实现通讯。

  • 增:window.sessionStorage.setItem(' shao', ' 邵州')
  • 查:window.sessionStorage.getItem('xxx') console.log(xxx)
  • 删除:window.sessionStorage.removeItem('xxx')
  • 清空:window.sessionStorage.claear()

cookie

1.只能存储字符串,并且有自己固定的格式,

  • key=value; key2=value2

2..存储大小有限制4kb左右

3.存储具有时效性,默认是会话级(sessionStorage),但是我们也可以指定过期时间

4.操作必须以来服务器,目前可以借助liveserver启动页面,不要本地的方式启动

5.前端后通讯的时候会自动携带cookie,前端像后端发起请求的时候,会自动把cookie内部存储的数据发送给后端

6.前后端语言都可以操作

7.存储依赖域名,同一个域名内可以通讯,否则不行

image.png

cookie过期时间

image.png

本地存储之间的区别

1.出现时间:

  • cookie有JS的时候就有了
  • storage有H5的时候才有的

2.存储大小

  • cookie 4kb左右
  • storage 4mb-20mb

3.前后端交互

  • cookie 交互时会自动传递给后端
  • storage 交互式不会自动传递给后端,除非手动携带

4.前后端操作

  • cookie 前后端语言都可以操作
  • storage 只能前端语言操作

5.过期时间

  • cookie 可以手动知道过期时间,也有默认的过期时间
  • storage 没有过期时间

两个 storage 之间的区别

  • localStorage

    • 过期时间:持久化存储,除非手动删除
    • 跨页面通讯:能够完成
  • sessionStorage

    • 过期时间:临时存储,关闭浏览器的时候数据就会被清空
    • 跨页面通讯:只有从当前页面跳转过去的页面才能完成
  • 共同点

    • 都必须存储字符串
    • 存储其他数据类型的时候,需要借助JSON的方法进行一个转换

DOM

DOM 文档对象模型

  • JS 运行到 HTML 文件中, 由 HTML 文件提供了 DOM的能力
  • 比如:添加一个div
  • 删除一个li
  • 修改一个ol
  • 获取某一个标签的样式,或者修改某一个标签的样式
  • 给某一个标签添加事件
  • 给某一个标签添加属性

DOM的核心是document

  • document 是JS内置的一个对象,内部提供了很多属性和方法,帮我们便捷的操作页面标签
  • 1.文档类型模型
  • 2.标签

获取标签

  • 语法1:

    • document.querySelector(‘像写CSS选择器一样书写标签’),返回值:符合条件的第一个标签
  • 语法2:

    • document.querySelectorAll(‘一样’) , 返回值:返回一个符合条件的标签组成的伪数组

image.png

获取样式

  • 元素/标签.style 能够拿到 行内 样式, 或者给添加一个行内样式
  • getComputedStyle(‘要查询样式的标签’).要查询的样式名,能够获取到元素的样式(行内合肥行内都可以),但是获取到的内容是只读的,只允许查询,不允许修改

修改元素的样式

  • Div.style.width = ‘ 200px’
  • Div.style.backgroundColor = ‘red’

操作元素类名

  • 元素/标签.className

    • 能够得到元素目前拥有的类名,还可以给这个属性重新赋值,然后修改当前标签的类名
  • 元素/标签.classList

    • 返回值 是一个伪数组,数组内下标对应的是我们每一个类名value属性对应的是我们完整类名的字符串

操作元素属性

  • 获取标签属性

    • console.log(box.getAttribute(‘class’))
  • 设置标签属性

    • 增:添加 :box.setAttribute(‘myjia’, ‘这是通过JS添加的一个自定义属性’) ,或 box.setAttribute(‘class’ , ‘qf001’)

    • H5新增自定义属性

      • h5 自定义属性在书写的时候有一个固定的开头就是data- ;
      • 完整语法: data-属性名=属性值
      • 获取语法:元素/标签.dataset.属性名

image.png