当前位置: 首页 > news >正文

HTML5 day_01(8.5)

一、基于keepalive实现首页的保活

有个问题:在首页点击列表项跳转到详情页后,点击返回,回到首页,发现首页会重新挂载(执行mounted),意味着首页以前的状态将不复存在。而业务需求希望回到首页时,首页依然是跳转之前的状态(上个页面不销毁),这就需要使用vue提供的“保活机制”来对首页进行保活处理。

为router-view添加keep-alive实现动态组件保活

 

 一旦页面被保活处理,重新显示该页面时将不会执行mounted生命周期方法。

更多的时候,有些页面需要保活,有些页面不需要保活,所以就需要动态设置:

1.在路由配置index.js文件中,为需要保活的路由页面添加自定义的meta属性:

2. 为router-view绑定v-if指令来动态控制组件的渲染。

 VuekeepAlive机制设计了两个额外的生命周期方法:

VueRouter滚动行为

滚动行为 | Vue Router

二、完成注册业务

  1. 完成注册页面。包括表单验证。

  2. 验证通过后,收用户信息,发送http请求,执行注册业务。

  3. 接收返回的结果。给与提示或跳转。

密码加密:

注册时,先做md5然后再插入数据库

INSERT xzqa_author(username,password) VALUES(?,MD5(?))

登录时,先做md5让然后在于数据库进行比对

SELECT id,username,nickname,avatar FROM xzqa_author WHERE username=? AND password=MD5(?)

完成登录业务

与注册业务类似。

三、实现首页右上角登录用户的显示

当登录成功,需要在首页右上角显示:欢迎:xxxx。 Vuex

实现思路:

  1. vuex中设计statemutations,用于管理当前用户信息的全局共享。

  2. 当登录成功后,调用vuexmutations,将用户信息存入vuexstate中。

在项目的任何一个组件中,若希望获取当前登录用户的数据,则直接访问vuex即可。

 至此,登录成功后跳转到首页,已经可以实现在首页中显示欢迎用户信息。但是不能刷新。一旦刷新页面,将会重置vue容器,vuex中保存的数据都将会被初始化。需要相一个办法,持久化保存vuex中的数据。 推荐使用HTML5新特性中的WebStorage

四、WebStorage

HTML5提供了WebStorage用于在客户端持久化保存一些数据。主要包含两大块存储区:

LocalStorage 将数据存储在该存储区后,只要用户不清除浏览器缓存,这部分数据将永久存储。SessionStorage 将数据存储在该存储区中,单会话生效(只要浏览器不关闭,数据将一致保存)。

通常情况下,vuex需要与WebStorage一起来完成数据状态保持的工作,这样在刷新页面时,由于数据持久化保存在storage中,所以在刷新页面后,可以让vuexstorage中加载以前的数据,从而完成数据持久化保存。

sessionStorageLocalStorageAPI

Storage中存储数据:

Storage中取出数据:通过key获取value

 删除Storage中的某一组数据:

清空Storage中的某一组数据:

 五、音频与视频

HTML5 提供了音视频播放相关标签,用于播放音频与视频。

音频

在网页中播放音频文件,支持的文件格式: mp3 / wav / ogg

案例: 01_audio.html

音频标签的常用属性

 

preload : 音频资源的预加载模式: metadata auto none

metadata : 仅预加载音频的元数据信息

auto : 尽可能的加载音频数据

none : 不预加载音频数据

六、视频标签

在网页中内嵌视频的写法如下:支持的视频格式: mp4/webm/ogg

视频标签的常用属性

音视频标签的 DOM 操作

DOM 操作意味着通过 Javascript 获取页面中的音频或视频 DOM 对象,从而访问对象的属性(获取音视频播放器 的状态信息),调用对象的方法(操作音视频播放器)。

音视频DOM对象常用API文档

HTML 音频/视频参考手册

HTML5 Audio/Video 方法

HTML5 Audio/Video 属性

HTML5 Audio/Video 事件

相关文章:

  • 跑路了,去东北国企干软件测试一个月的感触
  • datawhale8月组队学习《pandas数据处理与分析》(中)(变形、连接、缺失数据)
  • recording:34. 在排序数组中查找元素的第一个和最后一个位置
  • 【论文阅读】Globally Consistent and Tightly Coupled 3D LiDAR Inertial Mapping
  • Java8 特性(二):Optional 相关操作
  • y119.第七章 服务网格与治理-Istio从入门到精通 -- Istio流量治理快速入门(五)
  • 以字符串的形式返回文件名扩展名
  • 机械硬盘数据拷贝
  • 计算机毕业设计java毕设项目之ssm中医药配方小程序
  • 【C++】内存管理 + 初识模板
  • 猿创征文|我的技术成长之路,一名Python学者在CSDN的蜕变
  • java基于ssm的高校人事员工工资管理系统
  • QML初学者教程
  • 速卖通详情接口接口调用示例
  • 记录Kettle连不上mysql8
  • css系列之关于字体的事
  • css属性的继承、初识值、计算值、当前值、应用值
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • iOS 系统授权开发
  • java8 Stream Pipelines 浅析
  • jdbc就是这么简单
  • leetcode386. Lexicographical Numbers
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • Vue 动态创建 component
  • vue-cli在webpack的配置文件探究
  • Vue实战(四)登录/注册页的实现
  • 人脸识别最新开发经验demo
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 思否第一天
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 原生Ajax
  • 白色的风信子
  • const的用法,特别是用在函数前面与后面的区别
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • ​学习一下,什么是预包装食品?​
  • #pragma pack(1)
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (floyd+补集) poj 3275
  • (javascript)再说document.body.scrollTop的使用问题
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (八)Spring源码解析:Spring MVC
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (六)c52学习之旅-独立按键
  • (四) 虚拟摄像头vivi体验
  • (转)LINQ之路
  • (转载)PyTorch代码规范最佳实践和样式指南
  • .NET BackgroundWorker
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .NET委托:一个关于C#的睡前故事
  • /etc/skel 目录作用
  • ?php echo ?,?php echo Hello world!;?
  • @data注解_一枚 架构师 也不会用的Lombok注解,相见恨晚