【自种树自乘凉】HTML5 入门

549 阅读3分钟

本文已参与掘金创作者训练营第三期「高产更文」赛道,详情查看:掘力计划|创作者训练营第三期正在进行,「写」出个人影响力

HTML5 标记方式

HTML5 的文档类型声明

<!DOCTYPE html>

HTML5 文档编码格式的指定

<meta charset="utf–8">

HTML5 文档结构

<header> 标签:用于定义页眉信息。

<nav> 标签:定义导航栏。

<article> 标签:用于页面中可以独自被外部引用的内容,可以是一篇文章、一个评论等。

<aside> 标签:专门用于定义当前页面或文章的附属信息,包括相关引用、侧边栏、广告、导航等。

<footer> 标签:用于定义脚注部分,比如版权。

......

三. Canvas 绘图

基本步骤:

  1. Canvas 标签的定义:
<canvas id="myCanvas" width="200" height="200" style="border:1px solid #000">
</canvas>
  1. 使用 JS 获取该 Canvas 对象:
var canvas = document.getElementById("myCanvas");
  1. 获取 2D 图形上下文对象:
var context = canvas.getContext("2d");
  1. 使用 Context 对象的属性方法进行绘制:
context.fillStyle = "#FF0000";
context.fillRect(30, 30, 100, 100);

video/audio 标签

基本使用方法:

<video src="video.mp4" width="100%" height="100%" autoplay controls></video>

<audio src="xxxx.mp3" autoplay controls></audio>

拖放 API

通过拖放 API 可以使页面中任意元素变成可拖动的,这样有利于设计出更友好的交互界面。

要使一个元素能够被拖动,需要为这个元素设置属性 draggable="true",但这样仅仅是表示该元素允许被拖放,但在拖放时并不携带数据,用户看不到拖放的效果。这时还需要为该元素绑定事件监听器 ondragstart="drag(event)",并在事件处理函数中设置所需携带的数据。

注意: <img> 标签和带有 href 属性的 <a> 标签默认是可以拖动的。

基本语法:

HTML:

<div id="mydiv" draggable="true" ondragstart="drag(event)"
  style="width: 100px; height: 50px; background-color: #eee;">测试</div>

JS:

var mydiv = document.getElementById("mydiv");

function drag(e) {
   // text 为 IE 兼容写法;dataTransfer 对象提供属性和方法
   e.dataTransfer.setData("text", "要携带的数据");
}

Web 存储

在 HTML4 中存储数据使用 Cookie 来实现,但是 Cookie 的大小被限制在 4KB 以下,并且 Cookie 可能会随着 HTTP 请求一起向服务器发送,可能会造成带宽的浪费。

所以 HTML5 提供了 Web Storage。

Web Storage 有两种存储形式:Session Storage 和 Local Storage。

Session Storage:用于保存用户浏览网站这段时间内所需要保存的数据,当网站被关闭时,保存的数据也随之丢失。
Local Storage:将数据保存在客户端的硬件设备中,当浏览器关闭后,数据任然存在。

重点介绍 Local Storage:

存数据:

localStorage.setItem(键 , 值);

取数据:

var data = localStorage.getItem(键);

其他常用属性和方法:

localStorage.length; // 返回键值对的数量
localStorage.key(index); // 返回第index个数据的key(键)
localStorage.removeItem(key); // 删除对应的数据
localStorage.clear(); // 清空所有

本地数据库

HTML4 中数据库存放在服务器端,只能通过服务器来访问数据库,而在 HTML5 中内置了两种本地数据库:SQLite 和 IndexedDB(轻量级 NOSQL 数据库)。

现在 W3C 已暂停对 SQLite 规范进行更新,继而把重点放在 Web Storage 和 IndexedDB。

Web Worker

创建 Worker 对象(后台进程)多用于这些场合:抓取数据缓存本地、后台I/O处理、大数据分析或计算处理、Canvas绘图中的图形数据运算及生成处理、本地数据库中的数据存取及计算处理、计算量非常大(例如循环求1~100亿的和)。