Skip to content

Commit

Permalink
fix related broken links
Browse files Browse the repository at this point in the history
  • Loading branch information
yin1999 committed Nov 30, 2023
1 parent 679a6b1 commit 8002c6f
Show file tree
Hide file tree
Showing 24 changed files with 61 additions and 65 deletions.
2 changes: 1 addition & 1 deletion files/zh-cn/web/api/document/cookie/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ if (document.cookie.replace(/(?:(?:^|.*;\s*)someCookieName\s*\=\s*([^;]*).*$)|^.

## 一个小框架:一个完整支持 unicode 的 cookie 读取/写入器

作为一个格式化过的字符串,cookie 的值有时很难被自然地处理。下面的库的目的是通过定义一个和[`Storage 对象`](/zh-CN/docs/Web/Guide/API/DOM/Storage#Storage)部分`一致的`对象(docCookies),简化`document.cookie` 的获取方法。它提供完全的 Unicode 支持。
作为一个格式化过的字符串,cookie 的值有时很难被自然地处理。下面的库的目的是通过定义一个和 [`Storage` 对象](/zh-CN/docs/Web/API/Storage)部分一致的对象(docCookies),简化 `document.cookie` 的获取方法。它提供完全的 Unicode 支持。

```js
/*\
Expand Down
2 changes: 1 addition & 1 deletion files/zh-cn/web/api/gamepad/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,5 +58,5 @@ window.addEventListener("gamepadconnected", function (e) {

## 参见

- [使用 Gamepad API](/zh-CN/docs/Web/Guide/API/Gamepad)
- [使用 Gamepad API](/zh-CN/docs/Web/API/Gamepad_API/Using_the_Gamepad_API)
- [Gamepad API](/zh-CN/docs/Web/API/Gamepad_API)
2 changes: 1 addition & 1 deletion files/zh-cn/web/api/gamepadbutton/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,4 +67,4 @@ function gameLoop() {

## 参见

[使用 Gamepad API](/zh-CN/docs/Web/Guide/API/Gamepad)
[使用 Gamepad API](/zh-CN/docs/Web/API/Gamepad_API/Using_the_Gamepad_API)
2 changes: 1 addition & 1 deletion files/zh-cn/web/api/gamepadbutton/pressed/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,4 @@ if (gp.buttons[0].pressed == true) {

## 参见

- [使用 Gamepad API](/zh-CN/docs/Web/Guide/API/Gamepad)
- [使用 Gamepad API](/zh-CN/docs/Web/API/Gamepad_API/Using_the_Gamepad_API)
2 changes: 1 addition & 1 deletion files/zh-cn/web/api/gamepadbutton/value/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,4 @@ if (gp.buttons[0].value > 0) {

## 参见

[使用 Gamepad API](/zh-CN/docs/Web/Guide/API/Gamepad)
[使用 Gamepad API](/zh-CN/docs/Web/API/Gamepad_API/Using_the_Gamepad_API)
2 changes: 1 addition & 1 deletion files/zh-cn/web/api/gamepadevent/gamepad/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,4 @@ window.addEventListener("gamepadconnected", function (e) {

## 参见

[使用 Gamepad API](/zh-CN/docs/Web/Guide/API/Gamepad)
[使用 Gamepad API](/zh-CN/docs/Web/API/Gamepad_API/Using_the_Gamepad_API)
2 changes: 1 addition & 1 deletion files/zh-cn/web/api/gamepadevent/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,4 +51,4 @@ window.addEventListener("gamepaddisconnected", function (e) {

## 参见

[使用 Gamepad API](/zh-CN/docs/Web/Guide/API/Gamepad)
[使用 Gamepad API](/zh-CN/docs/Web/API/Gamepad_API/Using_the_Gamepad_API)
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ slug: Web/API/IndexedDB_API/Checking_when_a_deadline_is_due

![A screenshot of the sample app. A red main title saying To do app, a test to-do item, and a red form for users to enter new tasks](to-do-app.png)

The main example application we will be referring to in this article is **To-do list notifications**, a simple to-do list application that stores task titles and deadline times and dates via [IndexedDB](/zh-CN/docs/Web/API/IndexedDB_API), and then provides users with notifications when deadline dates are reached, via the [Notification](/zh-CN/docs/Web/API/notification), and [Vibration](/zh-CN/docs/Web/Guide/API/Vibration) APIs. You can [download the To-do list notifications app from github](https://github.com/chrisdavidmills/to-do-notifications/tree/gh-pages) and play around with the source code, or [view the app running live](https://mdn.github.io/dom-examples/to-do-notifications/).
The main example application we will be referring to in this article is **To-do list notifications**, a simple to-do list application that stores task titles and deadline times and dates via [IndexedDB](/zh-CN/docs/Web/API/IndexedDB_API), and then provides users with notifications when deadline dates are reached, via the [Notification](/zh-CN/docs/Web/API/notification), and [Vibration](/zh-CN/docs/Web/API/Vibration_API) APIs. You can [download the To-do list notifications app from github](https://github.com/chrisdavidmills/to-do-notifications/tree/gh-pages) and play around with the source code, or [view the app running live](https://mdn.github.io/dom-examples/to-do-notifications/).

## 基本问题

Expand Down
2 changes: 1 addition & 1 deletion files/zh-cn/web/api/indexeddb_api/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ IndexedDB 是一种底层 API,用于在客户端存储大量的结构化数据
## 关键概念和用法

IndexedDB 是一个事务型数据库系统,类似于基于 SQL 的 RDBMS。然而,不像 RDBMS 使用固定列表,IndexedDB 是一个基于 JavaScript 的面向对象数据库。IndexedDB 允许你存储和检索用****索引的对象;可以存储[结构化克隆算法](/zh-CN/docs/Web/Guide/API/DOM/The_structured_clone_algorithm)支持的任何对象。你只需要指定数据库模式,打开与数据库的连接,然后检索和更新一系列**事务**
IndexedDB 是一个事务型数据库系统,类似于基于 SQL 的 RDBMS。然而,不像 RDBMS 使用固定列表,IndexedDB 是一个基于 JavaScript 的面向对象数据库。IndexedDB 允许你存储和检索用****索引的对象;可以存储[结构化克隆算法](/zh-CN/docs/Web/API/Web_Workers_API/Structured_clone_algorithm)支持的任何对象。你只需要指定数据库模式,打开与数据库的连接,然后检索和更新一系列**事务**

- 阅读更多关于 [IndexedDB 背后的概念](/zh-CN/docs/Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB)
-[使用 IndexedDB](/zh-CN/docs/Web/API/IndexedDB_API/Using_IndexedDB) 指南的第一准则中学习异步使用 IndexedDB。
Expand Down
4 changes: 2 additions & 2 deletions files/zh-cn/web/api/mediastreamevent/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,5 +39,5 @@ pc.onaddstream = function (ev) {

## 参见

- [WebRTC](/zh-CN/docs/Web/Guide/API/WebRTC)
- Its usual target: {{domxref("RTCPeerConnection")}}.
- [WebRTC](/zh-CN/docs/Web/API/WebRTC_API)
- 它的常见目标:{{domxref("RTCPeerConnection")}}
2 changes: 1 addition & 1 deletion files/zh-cn/web/api/navigator/getgamepads/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,5 +38,5 @@ window.addEventListener("gamepadconnected", function (e) {

## 参见

- [Using the Gamepad API](/zh-CN/docs/Web/Guide/API/Gamepad)
- [使用 Gamepad API](/zh-CN/docs/Web/API/Gamepad_API/Using_the_Gamepad_API)
- [Gamepad API](/zh-CN/docs/Web/API/Gamepad_API)
10 changes: 5 additions & 5 deletions files/zh-cn/web/api/rtcdatachannel/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ RTCDataChannel 接口代表在两者之间建立了一个双向数据通道的
- {{domxref("RTCDataChannel.send()")}}
- : 将参数中的数据通过 channel 发送。这个数据可以是{{domxref("DOMString")}}, {{domxref("Blob")}}, {{domxref("ArrayBuffer")}}或者是 {{domxref("ArrayBufferView")}}类型。

## Example
## 示例

```js
var pc = new RTCPeerConnection();
Expand All @@ -82,14 +82,14 @@ dc.onclose = function () {
};
```

## Specifications
## 规范

{{Specifications}}

## Browser compatibility
## 浏览器兼容性

{{Compat}}

## See also
## 参见

- [WebRTC](/zh-CN/docs/Web/Guide/API/WebRTC)
- [WebRTC](/zh-CN/docs/Web/API/WebRTC_API)
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,21 @@ title: RTCPeerConnection.canTrickleIceCandidates
slug: Web/API/RTCPeerConnection/canTrickleIceCandidates
---

{{APIRef("WebRTC")}}只读的 **{{domxref("RTCPeerConnection")}}** 属性 `canTrickleIceCandidates` 返回一个{{jsxref("Boolean")}},它指示远程对等端是否可以接受 [trickled ICE candidates](https://tools.ietf.org/html/draft-ietf-mmusic-trickle-ice-02)
{{APIRef("WebRTC")}}

只读的 **{{domxref("RTCPeerConnection")}}** 属性 `canTrickleIceCandidates` 返回一个{{jsxref("Boolean")}},它指示远程对等端是否可以接受 [trickled ICE candidates](https://tools.ietf.org/html/draft-ietf-mmusic-trickle-ice-02)

**ICE trickling**是在初始发送或回应已经发送给其他设备之后继续发送候选的过程。

仅在调用{{domxref("RTCPeerConnection.setRemoteDescription()")}}之后才设置此属性。理想情况下,你的信令协议提供了一种检测滴流支持的方法,因此你无需依赖此属性。WebRTC 浏览器将始终支持 trickle ICE。如果不支持滴流,或者你无法辨别,则可以检查此属性的伪值,然后等待{{domxref("RTCPeerConnection.iceGatheringState","iceGatheringState")}}的值更改在创建和发送之前“完成”。这样,发送信息包含所有候选。

## 语法

```plain
var canTrickle = RTCPeerConnection.canTrickleIceCandidates;
```

###
##

{{jsxref("Boolean")}} 如果远程对等体可以接受滴入的 ICE candidate,则为 true;如果不能,则为 false。如果尚未建立远程对等方,则此值为 null。
{{jsxref("Boolean")}} 如果远程对等体可以接受滴入的 ICE candidate,则为 true如果不能,则为 false。如果尚未建立远程对等方,则此值为 null。

> **备注:** 一旦本地对等方调用{{domxref("RTCPeerConnection.setRemoteDescription()")}},就确定该属性的值; ICE 代理使用所提供的描述来确定远程对等体是否支持滴入的 ICE candidates。
## 用例
## 示例

```js
var pc = new RTCPeerConnection();
Expand Down Expand Up @@ -60,8 +56,8 @@ pc.addEventListener('icecandidate', e => {

{{Compat}}

## 相关阅读
## 参见

- [WebRTC](/zh-CN/docs/Web/Guide/API/WebRTC)
- [WebRTC](/zh-CN/docs/Web/API/WebRTC_API)
- {{domxref("RTCPeerConnection.addIceCandidate()")}}
- [Lifetime of a WebRTC session](/zh-CN/docs/Web/API/WebRTC_API/Session_lifetime)
- [WebRTC 会话的生命周期](/zh-CN/docs/Web/API/WebRTC_API/Session_lifetime)
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ else {

> **备注:** The addition of `currentLocalDescription` and {{domxref("RTCPeerConnection.pendingLocalDescription", "pendingLocalDescription")}} to the WebRTC spec is relatively recent. In browsers which don't support them, just use {{domxref("RTCPeerConnection.localDescription", "localDescription")}}.
## 参阅
## 参见

- {{domxref("RTCPeerConnection.setLocalDescription()")}}, {{domxref("RTCPeerConnection.pendingLocalDescription")}}, {{domxref("RTCPeerConnection.localDescription")}}
- {{domxref("RTCPeerConnection.setRemoteDescription()")}}, {{domxref("RTCPeerConnection.remoteDescription")}}, {{domxref("RTCPeerConnection.pendingRemoteDescription")}}, {{domxref("RTCPeerConnection.currentRemoteDescription")}}
- [WebRTC](/zh-CN/docs/Web/Guide/API/WebRTC)
- {{domxref("RTCPeerConnection.setLocalDescription()")}}{{domxref("RTCPeerConnection.pendingLocalDescription")}}{{domxref("RTCPeerConnection.localDescription")}}
- {{domxref("RTCPeerConnection.setRemoteDescription()")}}{{domxref("RTCPeerConnection.remoteDescription")}}{{domxref("RTCPeerConnection.pendingRemoteDescription")}}{{domxref("RTCPeerConnection.currentRemoteDescription")}}
- [WebRTC](/zh-CN/docs/Web/API/WebRTC_API)
4 changes: 2 additions & 2 deletions files/zh-cn/web/api/rtcpeerconnection/getreceivers/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ var receivers = rtcPeerConnection.getReceivers();

{{Compat}}

## 参阅
## 参见

- [WebRTC](/zh-CN/docs/Web/Guide/API/WebRTC_API)
- [WebRTC](/zh-CN/docs/Web/API/WebRTC_API)
- {{domxref("RTCRtpSender")}}
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,6 @@ _方法继承自 {{domxref("RTCPeerConnectionIceEvent")}}._

{{Compat}}

## 参阅
## 参见

- [WebRTC](/zh-CN/docs/Web/Guide/API/WebRTC)
- [WebRTC](/zh-CN/docs/Web/API/WebRTC_API)
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,6 @@ var state = pc.iceConnectionState;

{{Compat}}

## 参考文档
## 参见

- [WebRTC](/zh-CN/docs/Web/Guide/API/WebRTC)
- [WebRTC](/zh-CN/docs/Web/API/WebRTC_API)
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ else {

{{Compat}}

## 相关链接
## 参见

- {{domxref("RTCPeerConnection.setRemoteDescription()")}}, {{domxref("RTCPeerConnection.pendingRemoteDescription")}}, {{domxref("RTCPeerConnection.currentRemoteDescription")}}
- {{domxref("RTCPeerConnection.setLocalDescription()")}}, {{domxref("RTCPeerConnection.pendingLocalDescription")}}, {{domxref("RTCPeerConnection.currentLocalDescription")}}, {{domxref("RTCPeerConnection.localDescription")}}
- [WebRTC](/zh-CN/docs/Web/Guide/API/WebRTC)
- {{domxref("RTCPeerConnection.setRemoteDescription()")}}{{domxref("RTCPeerConnection.pendingRemoteDescription")}}{{domxref("RTCPeerConnection.currentRemoteDescription")}}
- {{domxref("RTCPeerConnection.setLocalDescription()")}}{{domxref("RTCPeerConnection.pendingLocalDescription")}}{{domxref("RTCPeerConnection.currentLocalDescription")}}{{domxref("RTCPeerConnection.localDescription")}}
- [WebRTC](/zh-CN/docs/Web/API/WebRTC_API)
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,4 @@ document.getElementById("closeButton").addEventListener("click", function(event)
## 参见
- [WebRTC](/zh-CN/docs/Web/Guide/API/WebRTC)
- [WebRTC](/zh-CN/docs/Web/API/WebRTC_API)
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,14 @@ pc.setRemoteDescription(new RTCSessionDescription(offer), function () {
});
```

## Specifications
## 规范

{{Specifications}}

## Browser compatibility
## 浏览器兼容性

{{Compat}}

## See also
## 参见

- [WebRTC](/zh-CN/docs/Web/Guide/API/WebRTC)
- [WebRTC](/zh-CN/docs/Web/API/WebRTC_API)
12 changes: 6 additions & 6 deletions files/zh-cn/web/api/rtcsessiondescription/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ _`RTCSessionDescription` 不继承任何方法。_
- {{domxref("RTCSessionDescription.toJSON()")}}
- : 返回一个{{Glossary("JSON")}} 描述对象。该对象包含两个值,{{domxref("RTCSessionDescription.type", "type")}} 和{{domxref("RTCSessionDescription.sdp", "sdp")}}。

## Example
## 示例

```js
signalingChannel.onmessage = function (evt) {
Expand All @@ -66,15 +66,15 @@ signalingChannel.onmessage = function (evt) {
};
```

## Specifications
## 规范

{{Specifications}}

## Browser compatibility
## 浏览器兼容性

{{Compat}}

## See also
## 参见

- [WebRTC](/zh-CN/docs/Web/Guide/API/WebRTC)
- {{domxref("RTCPeerConnection.setLocalDescription()")}} and {{domxref("RTCPeerConnection.setRemoteDescription()")}}
- [WebRTC](/zh-CN/docs/Web/API/WebRTC_API)
- {{domxref("RTCPeerConnection.setLocalDescription()")}} {{domxref("RTCPeerConnection.setRemoteDescription()")}}
Original file line number Diff line number Diff line change
Expand Up @@ -24,29 +24,29 @@ slug: Web/API/Storage_API/Storage_quotas_and_eviction_criteria
源的“最后访问时间”会更新,当其中任何一个被激活/停用时——所有这些源下的配额客户端的数据会被回收。

在 Chrome/Opera 中,Quota Management API 处理[AppCache](/zh-CN/docs/Web/HTML/Using_the_application_cache)[IndexedDB](/zh-CN/docs/Web/API/IndexedDB_API)WebSQL 和[File System API](/zh-CN/docs/WebGuide/API/File_System)的配额管理。
在 Chrome/Opera 中,Quota Management API 处理 [AppCache](/zh-CN/docs/Web/HTML/Using_the_application_cache)[IndexedDB](/zh-CN/docs/Web/API/IndexedDB_API)WebSQL 和 [File System API](/zh-CN/docs/Web/API/File_and_Directory_Entries_API/Introduction) 的配额管理。

## 数据存储的不同类型

即使在相同的浏览器、使用相同的存储方法,仍然存在不同的数据存储方法需要我们搞清楚。这部分我们讨论那些在不同浏览器之间的不同之处。

一般来说,数据存储的的类型主要有以下两种:

- 持久化存储:这种数据是希望长久保留的,只有的当用户选择清除才会被删除掉(比如,在 Firefox 中,你可以通过转到*“首选项”*并使用“ *隐私和安全”>“Cookie 和站点数据”*下的选项,选择删除所有存储的数据或仅删除所选来源的存储数据)。
- 临时存储:这种数据不用保存很久,当最近一次使用时[储存限制](#储存限制)达到限制大小就会被自动清理掉([LRU 策略](#lru策略))。
- 持久化存储:这种数据是希望长久保留的,只有的当用户选择清除才会被删除掉(比如,在 Firefox 中,你可以通过转到_首选项_并使用“_隐私和安全_”>“_Cookie 和站点数据_下的选项,选择删除所有存储的数据或仅删除所选来源的存储数据)。
- 临时存储:这种数据不用保存很久,当最近一次使用时[储存限制](#储存限制)达到限制大小就会被自动清理掉([LRU 策略](#lru_策略))。

在 Firefox 中,当使用持久存储时,会向用户提供一个 UI 弹出窗口,提醒他们这些数据将持续存在,并询问他们是否对此感到满意。临时数据存储不会引发任何用户提示。

默认的是临时存储;开发人员可以选择使用{{domxref("StorageManager.persist()")}}方法使用持久储存。
默认的是临时存储;开发人员可以选择使用 {{domxref("StorageManager.persist()")}} 方法使用持久储存。

## 数据存储在哪里?

每种存储类型代表一个单独的存储库。这是用户 Firefox 配置文件下目录的实际映射(其他浏览器可能略有不同):

- `<profile>/storage`配额管理器维护的主要顶级目录(见下文)
- `<profile>/storage/permanent`持久数据存储库
- `<profile>/storage/temporary` —临时数据存储库
- `<profile>/storage/default`默认数据存储库
- `<profile>/storage`——配额管理器维护的主要顶级目录(见下文)
- `<profile>/storage/permanent`——持久数据存储库
- `<profile>/storage/temporary`—临时数据存储库
- `<profile>/storage/default`——默认数据存储库

> **备注:** 引入[Storage API](/zh-CN/docs/Web/API/Web_Storage_API)后,“permanent”文件夹可以被认为是过时的;“permanent”文件夹仅存储 IndexedDB 持久性数据库。模式是“best-effort”还是“persistent”并不重要——数据存储在\<profile>/storage/default 下。
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,7 @@ onmessage = (event) => {
};
```

[结构化克隆](/zh-CN/docs/Web/Guide/API/DOM/The_structured_clone_algorithm)算法可以接收 JSON 数据以及一些 JSON 不能表示的数据——比如循环引用。
[结构化克隆](/zh-CN/docs/Web/API/Web_Workers_API/Structured_clone_algorithm)算法可以接收 JSON 数据以及一些 JSON 不能表示的数据——比如循环引用。

### 传递数据的例子

Expand Down
2 changes: 1 addition & 1 deletion files/zh-cn/web/api/webvr_api/using_the_webvr_api/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,7 @@ Finally, we {{domxref("CanvasRenderingContext2D.restore","restore()")}} the canv
### Fullscreen 全屏控制

The VR effect is much more effective if you set your app runnning in [fullscreen mode](/zh-CN/docs/Web/Guide/API/DOM/Using_full_screen_mode) — this generally means setting your {{htmlelement("canvas")}} element to fullscreen when a specific event occurs — such as double-clicking the display or pressing a specific button.
The VR effect is much more effective if you set your app runnning in [fullscreen mode](/zh-CN/docs/Web/API/Fullscreen_API) — this generally means setting your {{htmlelement("canvas")}} element to fullscreen when a specific event occurs — such as double-clicking the display or pressing a specific button.

In this case I have just kept things simple, running a `fullScreen()` function when the canvas is clicked:

Expand Down

0 comments on commit 8002c6f

Please sign in to comment.