目录

🍗 HTML5 API

# HTML5 地理定位

HTML Geolocation API 用于获取用户的地理位置,在获取之前需要用户的统一开启获取地理位置的权限。

使用 getCurrentPosition() 方法获取。

🌰 例子:

  • 首先检查是否支持地理定位,如果支持才运行 getCurrentPosiiton 方法。如果不支持,发送不支持的消息;
  • position.coords.latitude / position.coords.longitude 获取地理位置经纬度。

更多的属性:

属性 描述
coords.latitude 十进制数的纬度
coords.longitude 十进制数的经度
coords.accuracy 位置精度
coords.altitude 海拔,海平面以上以米计
coords.altitudeAccuracy 位置的海拔精度
coords.heading 方向,从正北开始以度计
coords.speed 速度,以米 / 每秒计
timestamp 响应的日期 / 时间

使用 watchPosition() :返回用户当前的位置,并继续返回用户移动时更新的位置; clearWatch() 方法:停止 watchPosition() 方法。

🌰 例子:

<script>
var x=document.getElementById("demo");
function getLocation()
  {
  if (navigator.geolocation)
    {
    navigator.geolocation.watchPosition(showPosition);
    }
  else{x.innerHTML="Geolocation is not supported by this browser.";}
  }
function showPosition(position)
  {
  x.innerHTML="Latitude: " + position.coords.latitude +
  "<br />Longitude: " + position.coords.longitude;
  }
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# HTML5 拖放

拖放(Drag 和 Drop)操作指的是用户抓取某个元素并拖入到不同的位置。拖放是 HTML5 标准中的一部分,任何元素都是可拖放的。

🌰 例子:

# HTML5 应用缓存

HTML5 引入了应用程序缓存,意味着可对 web 应用进行缓存,并可在没有网络连接时进行访问。

应用程序缓存为应用带来三个优势:

  • 离线浏览:用户可在应用离线时使用它们;
  • 速度:已缓存资源加载得更快;
  • 减少服务器负载:浏览器将只从服务器下载更新过或更改过的资源;

🌰 例子 / 带有 cache manifest 的 HTML 文档,可供离线阅读:

<!DOCTYPE HTML>
<html manifest="demo.appcache">

<body>
文档内容 ......
</body>

</html>
1
2
3
4
5
6
7
8

如需启用应用程序缓存,请在文档的 <html> 标签中包含 manifest 属性:

<!DOCTYPE HTML>
<html manifest="demo.appcache">
...
</html>
1
2
3
4

每个指定了 manifest 的页面在用户对其访问时都会被缓存。如果未指定 manifest 属性,则页面不会被缓存(除非在 manifest 文件中直接指定了该页面)。

  • manifest 的文件拓展名建议为 .appchache
  • manifest 文件需要设置正确的 MIME-type ,即 text/cache-manifest 。必须在 web 服务器上进行配置。

更新缓存 / 一旦应用被缓存,就会保存缓存直到发生下列情况:

  • 用户清空浏览器缓存;
  • manifest 文件被修改;
  • 由程序来更新应用缓存;

关于应用缓存需要注意:

  • 一旦文件被缓存,浏览器会继续展示已经缓存的版本,即使修改了服务器上的文件;为了确保浏览器更新缓存,需要更新 manifest 文件。
  • 浏览器对缓存数据的容量限制可能不太一样;

# HTML5 WebWorkers

Web worker 是运行在后台的 JavaScript,独立于其他脚本,不会影响页面的性能。继续做任何事情:点击、选取内容等等,而此时 web worker 运行在后台。

🌰 例子:

<!DOCTYPE html>
<html>
<body>

<p>计数: <output id="result"></output></p>
<button onclick="startWorker()">开始 Worker</button> 
<button onclick="stopWorker()">停止 Worker</button>
<br /><br />

<script>
var w;

function startWorker()
{
if(typeof(Worker)!=="undefined")
  {
  if(typeof(w)=="undefined")
  {
  w=new Worker("/example/html5/demo_workers.js");
  }
  w.onmessage = function (event) {
    document.getElementById("result").innerHTML=event.data;
    };
  }
else
  {
  document.getElementById("result").innerHTML="Sorry, your browser does not support Web Workers...";
  }
}

function stopWorker()
{ 
w.terminate();
}
</script>

</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
  • 在使用 Web Workers 之前,需要检查浏览器是否支持它。

  • 创建 Web Worker 文件。

📢 上次更新: 2022/09/02, 10:18:16