• Web APIs Web APIs第六天


    Web APIs

    老师:黑马程序员

    Web APIs第六天

    1. Window对象

    1.1 BOM(浏览器对象模型)
    1.1.1 BOM

    BOM(Browser Object Model)是浏览器对象模型

    在这里插入图片描述

    window是浏览器内置中的全局对象,学习的所有Web APIs的知识内容都是基于window对象实现的

    window对象下包含了navigator、location、document、history、screen 5个属性,即所谓的BOM((浏览器对象模型)

    document是实现DOM的基础,它其实是依附于window的属性。、

    注:依附于window对象的所有属性和方法,使用时可以省略window

    1.2 定时器-延时函数
    1.2.1 定时器-延时函数

    JavaScript内置的一个用来让代码延迟执行的函数,叫setTimeout

    语法:

    在这里插入图片描述

    setTimeout仅仅只执行一次,所以可以理解为就是把一段代码延迟执行,平时省略window

    【清除延时函数】

    在这里插入图片描述

    1.2.2 结合递归可以使用setTimeout实现setInterval

    在这里插入图片描述

    1.2.3 两种定时器对比
    • setlnterval的特征是重复执行,首次执行会延时

    • setTimeout的特征是延时执行,只执行1次

    • setTimeout结合递归函数,能模拟setInterval重复执行

    • clearTimeout清除由setTimeout创建的定时任务

    1.3 JS执行机制
    1.3.1 JS是单线程

    JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。这是因为Javascript这门脚本语言诞生的使命所致——JavaScript是为处理页面中用户的交互,以及操作DOM而诞生的。比如对某个DOM元素进行添加和删除操作,不能同时进行。应该先进行添加,之后再删除

    单线程就意味着,所有任务需要排队,前一个任务结束,才会执行后一个任务。这样所导致的问题是:如果JS执行的时间过长,这样就会造成页面的渲染不连贯,导致页面渲染加载阻塞的感觉。

    1.3.2 同步和异步

    为了解决这个问题,利用多核CPU的计算能力,HTML5提出web Worker标准,允许JavaScript脚本创建多个线程。于是,JS 中出现了同步和异步。

    【同步】

    前一个任务结束后再执行后一个任务,程序的执行顺序与任务的排列顺序是一致的、同步的。

    【异步】

    在做一件事情时,因为这件事情会花费很长时间,在做这件事的同时,你还可以去处理其他事情。

    本质区别:流水线上的各个流程的执行顺序不同

    1.3.3 同步任务和异步任务

    【同步任务】

    同步任务都在主线程上执行,形成一个执行栈。

    【异步任务】

    JS的异步是通过回调函数实现的。一般而言,异步任务有以下三种类型:

    1、普通事件,如click、resize等

    2、资源加载,如load、error 等

    3、定时器,包括setlnterval、setTimeout等

    异步任务相关添加到任务队列中(任务队列也称为消息队列)。

    1.3.4 JS执行机制

    1.先执行执行栈中的同步任务。

    2.异步任务放入任务队列中。

    3.一旦执行栈中的所有同步任务执行完毕,系统就会按次序读取任务队列中的异步任务,于是被读取的异步任务结束等待状态,进入执行栈,开始执行。

    在这里插入图片描述

    由于主线程不断的重复获得任务、执行任务、再获取任务、再执行,所以这种机制被称为事件循环(event loop)。

    1.4 location对象
    1.4.1 location对象

    location的数据类型是对象,它拆分并保存了URL地址的各个组成部分

    1.4.2 常用属性和方法

    href 属性获取完整的URL地址,对其赋值时用于地址的跳转

    在这里插入图片描述

    search属性获取地址中携带的参数,符号?后面部分

    在这里插入图片描述

    hash 属性获取地址中的啥希值,符号#后面部分

    在这里插入图片描述

    reload方法用来刷新当前页面,传入参数true时表示强制刷新

    在这里插入图片描述

    1.5 navigator对象
    1.5.1 navigator对象

    navigator的数据类型是对象,该对象下记录了浏览器自身的相关信息

    1.5.2 常用属性和方法

    通过userAgent检测浏览器的版本及平台

    在这里插入图片描述

    1.6 history对象
    1.6.1 history对象

    history 的数据类型是对象,该对象与浏览器地址栏的操作相对应,如前进、后退、历史记录等

    1.6.2 常用属性和方法

    在这里插入图片描述

    2. swiper插件

    2.2 插件
    2.2.1 什么是插件

    插件:就是别人写好的一些代码,我们只需要复制对应的代码,就可以直接实现对应的效果

    2.2.2 学习插件的基本过程

    熟悉官网,了解这个插件可以完成什么需求
    https://www.swiper.com.cn/

    看在线演示,找到符合自己需求的demo https://www.swiper.com.cn/demo/index.html

    查看基本使用流程https:/ / www.swiper.com.cn/usage/index.html

    查看APi文档,去配置自己的插件https:// www.swiper.com.cn/api/index.html

    注意:多个swiper同时使用的时候,类名需要注意区分

    3. 本地存储

    3.1 本地存储特性

    随着互联网的快速发展,基于网页的应用越来越普遍,同时也变的越来越复杂,为了满足各种各样的需求,会经常性在本地存储大量的数据,HTML5规范提出了相关解决方案。

    1、数据存储在用户浏览器中

    2、设置、读取方便、甚至页面刷新不丢失数据

    3、容量较大,sessionStorage和localStorage约5M左右

    3.2 localStorage

    1、生命周期永久生效,除非手动删除否则关闭页面也会存在

    2、可以多窗口(页面)共享(同一浏览器可以共享)

    3、以键值对的形式存储使用

    3.2.1 localStorage使用

    在这里插入图片描述

    在这里插入图片描述

    3.3 sessionStorage

    1、生命周期为关闭浏览器窗口

    2、在同一个窗口(页面)下数据可以共享

    3、以键值对的形式存储使用

    4.用法跟localStorage基本相同

  • 相关阅读:
    Flutter实践二:repository模式
    使用定时器消除抖动
    OpenHarmony 3.1 Beta版本关键特性解析——ArkUI容器类API介绍
    896. 最长上升子序列 II 线性dp (优化版 nlogn 贪心+二分)
    DVWA靶场Medium难度部分解析
    C++初阶(封装+多态--整理的自认为很详细)
    规则引擎Drools在贷后催收业务中的应用
    N1中openwrt实现不插网线就能上网,通过wifi连接路由器
    Java集合(Collection、Iterator、Map、Collections)概述——Java第十三讲
    【测试沉思录】18.如何测试微信小程序?
  • 原文地址:https://blog.csdn.net/weixin_44226181/article/details/126702684