Skip to content

Commit 534b913

Browse files
committed
feat: switch CI from Travis-CI to GitHub Actions
1 parent 5817935 commit 534b913

File tree

3 files changed

+107
-2
lines changed

3 files changed

+107
-2
lines changed

Diff for: .github/workflows/wangdoc.yml

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: JavaScript tutorial CI
2+
on:
3+
push:
4+
branches:
5+
- master
6+
7+
jobs:
8+
page-generator:
9+
name: Generating pages
10+
runs-on: ubuntu-latest
11+
steps:
12+
- name: Checkout
13+
uses: actions/checkout@v2
14+
with:
15+
persist-credentials: false
16+
- name: Setup Node.js
17+
uses: actions/setup-node@main
18+
with:
19+
node-version: '14'
20+
- name: Install dependencies
21+
run: npm install
22+
- name: Build pages
23+
run: npm run build
24+
- name: Deploy to website
25+
uses: JamesIves/[email protected]
26+
with:
27+
GIT_CONFIG_NAME: wangdoc-bot
28+
GIT_CONFIG_EMAIL: [email protected]
29+
REPOSITORY_NAME: wangdoc/website
30+
ACCESS_TOKEN: ${{ secrets.WANGDOC_BOT_TOKEN }}
31+
BASE_BRANCH: master
32+
BRANCH: master # The branch the action should deploy to.
33+
FOLDER: dist # The folder the action should deploy.
34+
TARGET_FOLDER: dist/javascript
35+
CLEAN: true # Automatically remove deleted files from the deploy branch
36+
COMMIT_MESSAGE: update from JavaScript tutorial
37+

Diff for: .travis.yml renamed to .travis.yml.bak

File renamed without changes.

Diff for: docs/bom/navigator.md

+70-2
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ Geolocation 对象提供下面三个方法。
106106

107107
### Navigator.cookieEnabled
108108

109-
`Navigator.cookieEnabled`属性返回一个布尔值,表示浏览器的 Cookie 功能是否打开。
109+
`navigator.cookieEnabled`属性返回一个布尔值,表示浏览器的 Cookie 功能是否打开。
110110

111111
```javascript
112112
navigator.cookieEnabled // true
@@ -118,7 +118,7 @@ navigator.cookieEnabled // true
118118

119119
### Navigator.javaEnabled()
120120

121-
`Navigator.javaEnabled()`方法返回一个布尔值,表示浏览器是否能运行 Java Applet 小程序。
121+
`navigator.javaEnabled()`方法返回一个布尔值,表示浏览器是否能运行 Java Applet 小程序。
122122

123123
```javascript
124124
navigator.javaEnabled() // false
@@ -128,6 +128,73 @@ navigator.javaEnabled() // false
128128

129129
`Navigator.sendBeacon()`方法用于向服务器异步发送数据,详见《XMLHttpRequest 对象》一章。
130130

131+
## Navigator 的实验性属性
132+
133+
Navigator 对象有一些实验性属性,在部分浏览器可用。
134+
135+
### Navigator.deviceMemory
136+
137+
`navigator.deviceMemory`属性返回当前计算机的内存数量(单位为 GB)。该属性只读,只在 HTTPS 环境下可用。
138+
139+
它的返回值是一个近似值,四舍五入到最接近的2的幂,通常是 0.25、0.5、1、2、4、8。实际内存超过 8GB,也返回`8`
140+
141+
```javascript
142+
if (navigator.deviceMemory > 1) {
143+
await import('./costly-module.js');
144+
}
145+
```
146+
147+
上面示例中,只有当前内存大于 1GB,才加载大型的脚本。
148+
149+
### Navigator.hardwareConcurrency
150+
151+
`navigator.hardwareConcurrency`属性返回用户计算机上可用的逻辑处理器的数量。该属性只读。
152+
153+
现代计算机的 CPU 有多个物理核心,每个物理核心有时支持一次运行多个线程。因此,四核 CPU 可以提供八个逻辑处理器核心。
154+
155+
```javascript
156+
if (navigator.hardwareConcurrency > 4) {
157+
await import('./costly-module.js');
158+
}
159+
```
160+
161+
上面示例中,可用的逻辑处理器大于4,才会加载大型脚本。
162+
163+
该属性通过用于创建 Web Worker,每个可用的逻辑处理器都创建一个 Worker。
164+
165+
```javascript
166+
let workerList = [];
167+
168+
for (let i = 0; i < window.navigator.hardwareConcurrency; i++) {
169+
let newWorker = {
170+
worker: new Worker('cpuworker.js'),
171+
inUse: false
172+
};
173+
workerList.push(newWorker);
174+
}
175+
```
176+
177+
上面示例中,有多少个可用的逻辑处理器,就创建多少个 Web Worker。
178+
179+
### Navigator.connection
180+
181+
`navigator.connection`属性返回一个对象,包含当前网络连接的相关信息。
182+
183+
- downlink:有效带宽估计值(单位:兆比特/秒,Mbps),四舍五入到每秒 25KB 的最接近倍数。
184+
- downlinkMax:当前连接的最大下行链路速度(单位:兆比特每秒,Mbps)。
185+
- effectiveType:返回连接的等效类型,可能的值为`slow-2g``2g``3g``4g`
186+
- rtt:当前连接的估计有效往返时间,四舍五入到最接近的25毫秒的倍数。
187+
- saveData:用户是否设置了浏览器的减少数据使用量选项(比如不加载图片),返回`true`或者`false`
188+
- type:当前连接的介质类型,可能的值为`bluetooth``cellular``ethernet``none``wifi``wimax``other``unknown`
189+
190+
```javascript
191+
if (navigator.connection.effectiveType === '4g') {
192+
await import('./costly-module.js');
193+
}
194+
```
195+
196+
上面示例中,如果网络连接是 4G,则加载大型脚本。
197+
131198
## Screen 对象
132199

133200
Screen 对象表示当前窗口所在的屏幕,提供显示设备的信息。`window.screen`属性指向这个对象。
@@ -166,3 +233,4 @@ if ((screen.width <= 800) && (screen.height <= 600)) {
166233
window.location.replace('wide.html');
167234
}
168235
```
236+

0 commit comments

Comments
 (0)