APIs学习记录之BOM操作,学生信息表(本地存储)

APIs学习记录之BOM操作-Window对象,延迟函数,JS执行机制,location对象,navigator对象,history对象,本地存储。

一. 知识储备

1)Window对象
  1. JS中的顶级对象
  2. 像document, alert(), console.log() 都是Window的属性
  3. var定义在全局中的变量和函数都是Window的属性和方法
2)定时器-延时函数

setTimeout( 回调函数, 延迟时间)延迟时间后只执行一次
setInterval( 回调函数, 延迟时间)隔一段时间执行一次

3)JS执行机制(了解,下面是我的记忆,maybe错乱

JS是单线程的,这样会有一个问题,会出现页面渲染不连贯,加载阻塞的问题。H5推出同步异步来解决这个问题,普通的任务就是同步任务,需要一定加载时间的,比如load(), click, setInterval()之类的任务是异步任务。
执行机制:

  1. 先执行执行栈里的同步任务
  2. 异步任务放到任务队列中
  3. 执行完同步任务后,异步任务进入执行栈执行
  4. 循环
4)location对象

拆分并保存了URL地址的各个组成部分

属性功能
href完整的URL地址,跳转页面
search地址中携带的参数,符号?+ 后面的部分
hash地址中的哈希值,符号# + 后面的部分,应用于部分页面刷新
方法功能
reload()重新加载,传入参数true表示强制刷新
5)navigator对象

记录了浏览器本身的信息
eg:const userAgent = navigator.userAgent // 用于验证用户设备之类

6)history对象

管理历史记录,与浏览器的地址栏的操作(前进,后退)相对应
实际开发比较少用,OA办公系统会见到

// 前进一页
history.forward() 
history.go(1)
// 后退一页
history.back()
history.go(-1)
7)本地存储(重要的哦)(浏览器小仓库

why:原本页面刷新数据会丢失,有很多时候需要保留数据

  • 数据存储在用户浏览器中
  • 设置,读取方便,甚至页面刷新不丢失数据
  • 容量较大

7.1 localStorage介绍
刷新和关闭页面数据都不会消失,存储的是字符串
语法:
localStorage.setItem( key, value ) // 存储数据
localStorage.getItem( key ) // 获取数据
localStorage.removeItem( key ) // 删除数据

7.2 sessionStorage介绍
关闭页面数据会被清除,刷新页面不会
使用方法基本相同,同上

7.3 localStorage存储复杂数据类型
why:本地存储只能存储字符串,无法存储复杂数据类型
how:把复杂数据类型转换为JSON字符串存储在本地
语法:
eg:localStorage.setItem( 'obj', JSON.stringify( obj ) )
eg: JSON.parse( localStorage.getItem( 'obj' ) )

8)数组操作,map和join方法

map遍历数组处理数据,并返回新数组
join把数组中所有元素用参数分隔符拼接成一个字符串

二. 学生信息表(本地存储)

在这里插入图片描述

  1. 准备阶段,获取元素
    const data = localStorage.getItem('data')
    // 从本地存储中取出到arr数组中,如果本地无数据,则为空数组
    const arr = data ? JSON.parse(data) : []
    // 获取tbody元素
    const tbody = document.querySelector('tbody')
  1. 渲染模块
    function render() {
        const trArr = arr.map(function (ele, index) {
        // map遍历数组为td还有删除模块的自定义属性赋值
        return `
        <tr>
          <td>${ele.stuId}</td>
          <td>${ele.uname}</td>
          <td>${ele.age}</td>
          <td>${ele.gender}</td>
          <td>${ele.salary}</td>
          <td>${ele.city}</td>
          <td>
            <a href="javascript:" data-id=${index}>删除</a>
          </td>
        </tr> 
        `
      })
      tbody.innerHTML = trArr.join()
    }
    render()
  1. 录入模块
    // 获取表单元素
    const info = document.querySelector('.info')
    // 获取表单form 里面带有 name属性的元素
    const items = info.querySelectorAll('[name]')
    // 点击事件
    info.addEventListener('submit', function (e) {
      // 阻止提交
      e.preventDefault()
      // 声明空的对象
      const obj = {}
      // 判断数组里是否有对象,有的话ID为最后一个学生的ID+1,没有的话赋值为1
      obj.stuId = arr.length ? arr[arr.length - 1].stuId + 1 : 1
      // 非空判断
      for (let i = 0; i < items.length; i++) {
        const item = items[i]
        if (items[i].value === '') {
          return alert('输入内容不能为空')
        }
        // 赋值
        obj[item.name] = item.value
      }
      arr.push(obj)
      //  把数组 arr 存储到本地存储里面
      localStorage.setItem('data', JSON.stringify(arr))
      // 渲染页面
      render()
      // 重置表单
      this.reset()
    })
  1. 删除模块(事件委托)
    tbody.addEventListener('click', function (e) {
      if (e.target.tagName === 'A') {
        // 删掉对应数据
        arr.splice(e.target.dataset.id, 1)
        localStorage.setItem('data', JSON.stringify(arr))
        render()
      }
    })
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
设计一个webapis学生报名系统的代码步骤如下: 1. 数据库设计:首先确定需要存储的数据,例如学生的基本信息,课程信息等。根据需求设计数据库结构,并创建相应的。 2. 后端接口设计:根据系统需求,设计后端接口,包括学生信息的录入、查询、修改和删除等功能。使用合适的编程语言,如Java、Python等,实现这些接口。 3. 前端界面设计:设计一个用户友好的前端界面,包括学生报名单和查询功能。使用HTML、CSS、JavaScript等技术实现界面的布局和交互,确保用户能够方便地输入和查询信息。 4. 前后端交互:通过AJAX或其他技术,实现前后端的数据交互。前端向后端发送请求,后端处理请求并返回相应的数据。 5. 学生信息录入:在前端界面设计好的报名单中,用户输入个人信息,通过调用后端接口将数据传递到后台。后台接收并验证输入的数据,并将学生信息存储到数据库中。 6. 学生信息查询:在前端界面设计好的查询功能中,用户输入需要查询的条件,通过调用后端接口将查询条件传递到后台。后台根据查询条件在数据库中查找匹配的学生信息,并将查询结果返回给前端。 7. 学生信息修改和删除:在前端界面设计好的修改和删除功能中,用户选择需要修改或删除的学生信息,并通过调用后端接口将相应的操作请求传递到后台。后台根据请求进行相应的操作,更新或删除数据库中的对应数据。 8. 错误处理和数据校验:在整个系统设计过程中,需要考虑错误处理和数据校验。在后端接口中,对输入的数据进行合法性检查,确保输入的数据符合要求。在前端界面中,对用户的输入进行格式验证,及时反馈给用户。 9. 安全性保障:为了保障系统的安全性,可以采用身份认证、权限控制等机制,确保只有授权的用户能够进行报名和查询等操作。 10. 测试和部署:在完成系统开发后,进行系统的测试和调试。确保系统的正确性和稳定性。最后将系统部署到服务器上,供用户使用。 以上是一个简单的webapis学生报名系统代码步骤,具体实现还需要根据具体需求进行调整和完善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值