From e49a5d4f5d4f19d43b7e5def9730281c1d2ab566 Mon Sep 17 00:00:00 2001
From: yangge19970923 <58454849+yangge19970923@users.noreply.github.com>
Date: Wed, 22 Feb 2023 11:11:17 +0800
Subject: [PATCH 1/4] =?UTF-8?q?Update=20=E6=95=B0=E6=8D=AE=E9=A2=84?=
=?UTF-8?q?=E6=8B=89=E5=8F=96.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
数据预拉取文件修改
---
...56\351\242\204\346\213\211\345\217\226.md" | 101 +++++++-----------
1 file changed, 37 insertions(+), 64 deletions(-)
diff --git "a/mini/api/\345\237\272\347\241\200API/\347\274\223\345\255\230/\345\221\250\346\234\237\346\200\247\346\233\264\346\226\260/\346\225\260\346\215\256\351\242\204\346\213\211\345\217\226.md" "b/mini/api/\345\237\272\347\241\200API/\347\274\223\345\255\230/\345\221\250\346\234\237\346\200\247\346\233\264\346\226\260/\346\225\260\346\215\256\351\242\204\346\213\211\345\217\226.md"
index cf5ec1e5c..8358ca742 100644
--- "a/mini/api/\345\237\272\347\241\200API/\347\274\223\345\255\230/\345\221\250\346\234\237\346\200\247\346\233\264\346\226\260/\346\225\260\346\215\256\351\242\204\346\213\211\345\217\226.md"
+++ "b/mini/api/\345\237\272\347\241\200API/\347\274\223\345\255\230/\345\221\250\346\234\237\346\200\247\346\233\264\346\226\260/\346\225\260\346\215\256\351\242\204\346\213\211\345\217\226.md"
@@ -1,43 +1,22 @@
# 简介
-预拉取能够在小程序冷启动的时候客户端向第三方服务器拉取业务数据,当页面打开时来获取数据可以更快地渲染页面,减少用户等待时间,从而提升小程序的打开速度 。
-
-## 使用限制
-
-- 支付宝客户端 10.2.36 版本,基础库 [2.7.11](https://opendocs.alipay.com/mini/framework/lib-upgrade-v2) 开始支持,低版本需要做 [兼容处理](https://opendocs.alipay.com/mini/framework/compatibility)。
-- 此 API 支持个人支付宝小程序、企业支付宝小程序使用。
+预拉取能够在小程序冷启动的时候通过支付宝后台提前向第三方服务器拉取业务数据,当页面打开时可以更快地渲染页面,减少用户等待时间,从而提升小程序的打开速度 。
# 使用流程
## 配置文件
-在小程序开发者工具 IDE 根目录创建 preload.json(自研小程序),该文件中填写预加载配置。
**注意:**
+在 **小程序开发者工具** 根目录创建 preload.json(自研小程序),该文件中填写预加载配置。
**注意:**
- preload.json 最多支持配置 2048 个字节,超过大小IDE会提示超限。
- 模板实例化小程序的场景使用 ext 设置(见后面的配置说明)。

-### 属性说明
-| **属性** | **类型** | **必填** | **说明** |
-| --- | --- | --- | --- |
-| fetchType | String | 否 | 请求类型。目前只支持 pre。
**默认值:**pre |
-| params | Object | 是 | 解析配置的请求 |
-
-
-#### params 对象属性说明
-| **属性** | **类型** | **必填** | **说明** |
-| --- | --- | --- | --- |
-| url | String | 是 | 请求 URL。 |
-| method | String | 否 | HTTP 请求方法。支持 GET、POST、DELETE、PUT。
**默认值:**GET |
-| headers | Array | 否 | 自定义请求头。 |
-| dataType | String | 否 | 期望返回的数据格式。支持 JSON、text、base64、arraybuffer。
**默认值:**JSON |
-| data | Object | 否 | 请求的参数。
- 如果是 method 为 GET,会将参数做成 query拼接在 url 后。
- 如果 method 为 POST,将默认以 x-www-form-urlencoded 提交。
|
-
### 配置示例
#### 自研小程序在 preload.json 配置
-**注意:**实际的配置文件不支持注释,下面文件中的注释部分只是为了更好说明每个字段的作用,请在拷贝的时候从配置文件中删除。
-```objectivec
+**注意:** 实际的配置文件不支持注释,下面文件中的注释部分只是为了更好说明每个字段的作用,请在拷贝的时候从配置文件中删除。
+```json
[
{
"fetchType": "pre", //配置pre
@@ -57,7 +36,8 @@
```
#### 模板小程序实例化时 ext 配置
-如果同时在 ext 和 preload.json 配置,会优先读取 ext 的配置,如果 ext 没有配置,则读取 preload.json 的配置。
实际的配置文件不支持注释,下面文件中的注释部分只是为了更好说明每个字段的作用,请在拷贝的时候从配置文件中删除。
+如果同时在 ext 和 preload.json 配置,会优先读取 ext 的配置,如果 ext 没有配置,则读取 preload.json 的配置。
+
**注意:** 实际的配置文件不支持注释,下面文件中的注释部分只是为了更好说明每个字段的作用,请在拷贝的时候从配置文件中删除。
```json
"preload":
[
@@ -78,8 +58,24 @@
]
```
+### 属性说明
+| **属性** | **类型** | **必填** | **说明** |
+| --- | --- | --- | --- |
+| fetchType | String | 否 | 请求类型。枚举值:pre、jsapiPre。数据预拉取请使用 pre。
**默认值:** pre |
+| params | Object | 是 | 解析配置的请求 |
+
+
+#### params 对象属性说明
+| **属性** | **类型** | **必填** | **说明** |
+| --- | --- | --- | --- |
+| url | String | 是 | 请求 URL。 |
+| method | String | 否 | HTTP 请求方法。支持 GET、POST、DELETE、PUT。
**默认值:** GET |
+| headers | Array | 否 | 自定义请求头。 |
+| dataType | String | 否 | 期望返回的数据格式。支持 JSON、text、base64、arraybuffer。
**默认值:** JSON |
+| data | Object | 否 | 请求的参数。
- 如果是 method 为 GET,会将参数做成 query 拼接在 url 后。
- 如果 method 为 POST,将默认以 x-www-form-urlencoded 提交。
|
+
## 请求数据
-当用户打开小程序时,客户端会发起一个 http request,其中包含的 query 参数如下,数据获取到后会将整个 HTTP body 缓存到本地。
+当用户打开小程序时,客户端将向开发者服务器(上面配置的数据下载地址)发起请求,其中包含的参数如下,数据获取到后会将整个 HTTP body 缓存到本地。
| **参数** | **类型** | **说明** |
| --- | --- | --- |
@@ -93,43 +89,20 @@
## 获取数据
-通过调用 JSAPI getBackgroundFetchData 获取预加载的数据:
-```typescript
-my.getBackgroundFetchData({
- fetchType: "pre",
- success(res) {
- console.log(res.fetchedData);
- },
- fail(res) {
- console.log("getBackgroundFetchData fail: ", res)
+通过调用 [my.getBackgroundFetchData](https://opendocs.alipay.com/mini/api/getBackgroundFetchData) 获取预加载的数据:
+``` js
+Page({
+ onReady() {
+ my.getBackgroundFetchData({
+ fetchType: "pre",
+ success(res) {
+ console.log(res);
+ },
+ fail(err) {
+ console.log(err);
+ }
+ })
}
})
-```
-
-### 入参
-Object 类型,属性如下:
-
-| **属性** | **类型** | **必填** | **描述** |
-| --- | --- | --- | --- |
-| fetchType | String | 是 | 请求类型。
暂时只支持 pre。 |
-| success | Function | 否 | 调用成功的回调函数。 |
-| fail | Function | 否 | 调用失败的回调函数。 |
-| complete | Function | 否 | 调用结束的回调函数(调用成功、失败都会执行)。 |
-
-
-### success 返回值
-| **属性** | **类型** | **描述** |
-| --- | --- | --- |
-| fetchType | String | 当前请求类型,目前只支持 pre。 |
-| timestamp | Number | 客户端拿到缓存数据的时间戳。 |
-| fetchedData | Object | 当前预加载的 response 数据。 |
-
-
-### 错误码
-| **错误码** | **说明** |
-| --- | --- |
-| 2 | 参数错误 |
-| 3 | 没有预加载数据 |
-
-
+```
From 0ed0fa1357fbdfc514ac6a6a9a03e3236206ce23 Mon Sep 17 00:00:00 2001
From: yangge19970923 <58454849+yangge19970923@users.noreply.github.com>
Date: Tue, 28 Feb 2023 13:19:26 +0800
Subject: [PATCH 2/4] =?UTF-8?q?Update=20=E6=95=B0=E6=8D=AE=E9=A2=84?=
=?UTF-8?q?=E6=8B=89=E5=8F=96.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
删除 “从而提升小程序的打开速度” 字样。
---
...\225\260\346\215\256\351\242\204\346\213\211\345\217\226.md" | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git "a/mini/api/\345\237\272\347\241\200API/\347\274\223\345\255\230/\345\221\250\346\234\237\346\200\247\346\233\264\346\226\260/\346\225\260\346\215\256\351\242\204\346\213\211\345\217\226.md" "b/mini/api/\345\237\272\347\241\200API/\347\274\223\345\255\230/\345\221\250\346\234\237\346\200\247\346\233\264\346\226\260/\346\225\260\346\215\256\351\242\204\346\213\211\345\217\226.md"
index 8358ca742..1df8db155 100644
--- "a/mini/api/\345\237\272\347\241\200API/\347\274\223\345\255\230/\345\221\250\346\234\237\346\200\247\346\233\264\346\226\260/\346\225\260\346\215\256\351\242\204\346\213\211\345\217\226.md"
+++ "b/mini/api/\345\237\272\347\241\200API/\347\274\223\345\255\230/\345\221\250\346\234\237\346\200\247\346\233\264\346\226\260/\346\225\260\346\215\256\351\242\204\346\213\211\345\217\226.md"
@@ -1,5 +1,5 @@
# 简介
-预拉取能够在小程序冷启动的时候通过支付宝后台提前向第三方服务器拉取业务数据,当页面打开时可以更快地渲染页面,减少用户等待时间,从而提升小程序的打开速度 。
+预拉取能够在小程序冷启动的时候通过支付宝后台提前向第三方服务器拉取业务数据,当页面打开时可以更快地渲染页面,减少用户等待时间。
# 使用流程
From 6fb52f8d0f3e561334956e87862a3392df3cd131 Mon Sep 17 00:00:00 2001
From: yangge19970923 <58454849+yangge19970923@users.noreply.github.com>
Date: Mon, 13 Mar 2023 17:53:32 +0800
Subject: [PATCH 3/4] =?UTF-8?q?Update=20=E6=95=B0=E6=8D=AE=E9=A2=84?=
=?UTF-8?q?=E6=8B=89=E5=8F=96.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
改为“支付宝客户端”获取数据
---
...\225\260\346\215\256\351\242\204\346\213\211\345\217\226.md" | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git "a/mini/api/\345\237\272\347\241\200API/\347\274\223\345\255\230/\345\221\250\346\234\237\346\200\247\346\233\264\346\226\260/\346\225\260\346\215\256\351\242\204\346\213\211\345\217\226.md" "b/mini/api/\345\237\272\347\241\200API/\347\274\223\345\255\230/\345\221\250\346\234\237\346\200\247\346\233\264\346\226\260/\346\225\260\346\215\256\351\242\204\346\213\211\345\217\226.md"
index 1df8db155..570f02aa1 100644
--- "a/mini/api/\345\237\272\347\241\200API/\347\274\223\345\255\230/\345\221\250\346\234\237\346\200\247\346\233\264\346\226\260/\346\225\260\346\215\256\351\242\204\346\213\211\345\217\226.md"
+++ "b/mini/api/\345\237\272\347\241\200API/\347\274\223\345\255\230/\345\221\250\346\234\237\346\200\247\346\233\264\346\226\260/\346\225\260\346\215\256\351\242\204\346\213\211\345\217\226.md"
@@ -1,5 +1,5 @@
# 简介
-预拉取能够在小程序冷启动的时候通过支付宝后台提前向第三方服务器拉取业务数据,当页面打开时可以更快地渲染页面,减少用户等待时间。
+预拉取能够在小程序冷启动的时候通过支付宝客户端提前向第三方服务器拉取业务数据,当页面打开时可以更快地渲染页面,减少用户等待时间。
# 使用流程
From 55d79bacb0f12e43688648e2071b4d3e8889d178 Mon Sep 17 00:00:00 2001
From: hbhftgf <59216141+hbhftgf@users.noreply.github.com>
Date: Sat, 22 Apr 2023 10:54:34 +0800
Subject: [PATCH 4/4] =?UTF-8?q?Update=20=E6=95=B0=E6=8D=AE=E9=A2=84?=
=?UTF-8?q?=E6=8B=89=E5=8F=96.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...56\351\242\204\346\213\211\345\217\226.md" | 43 +++++++++++--------
1 file changed, 25 insertions(+), 18 deletions(-)
diff --git "a/mini/api/\345\237\272\347\241\200API/\347\274\223\345\255\230/\345\221\250\346\234\237\346\200\247\346\233\264\346\226\260/\346\225\260\346\215\256\351\242\204\346\213\211\345\217\226.md" "b/mini/api/\345\237\272\347\241\200API/\347\274\223\345\255\230/\345\221\250\346\234\237\346\200\247\346\233\264\346\226\260/\346\225\260\346\215\256\351\242\204\346\213\211\345\217\226.md"
index 570f02aa1..0088091b5 100644
--- "a/mini/api/\345\237\272\347\241\200API/\347\274\223\345\255\230/\345\221\250\346\234\237\346\200\247\346\233\264\346\226\260/\346\225\260\346\215\256\351\242\204\346\213\211\345\217\226.md"
+++ "b/mini/api/\345\237\272\347\241\200API/\347\274\223\345\255\230/\345\221\250\346\234\237\346\200\247\346\233\264\346\226\260/\346\225\260\346\215\256\351\242\204\346\213\211\345\217\226.md"
@@ -1,5 +1,5 @@
# 简介
-预拉取能够在小程序冷启动的时候通过支付宝客户端提前向第三方服务器拉取业务数据,当页面打开时可以更快地渲染页面,减少用户等待时间。
+在小程序冷启动时通过支付宝客户端提前向第三方服务器拉取业务数据,有助于更快地渲染页面,减少用户等待时间。
# 使用流程
@@ -39,23 +39,25 @@
如果同时在 ext 和 preload.json 配置,会优先读取 ext 的配置,如果 ext 没有配置,则读取 preload.json 的配置。
**注意:** 实际的配置文件不支持注释,下面文件中的注释部分只是为了更好说明每个字段的作用,请在拷贝的时候从配置文件中删除。
```json
-"preload":
-[
- {
- "fetchType": "pre", //配置pre
- "params": {
- "url": "https://*****", //http请求的URL地址
- "method": "POST", // http method,支持GET/POST/DELETE/PUT
- "data": { //可选。请求的参数,如果method为GET,会将参数做成query拼接在url后
- "foo": "bar"
- },
- "headers": { //可选。额外的header信息。
- "token":"xxx"
- },
- "dataType": "json" //期望返回的数据格式,默认 JSON,支持 JSON、text、base64、arraybuffer
+{
+ // ext 配置中的 preload 字段
+ "preload": [
+ {
+ "fetchType": "pre", //配置pre
+ "params": {
+ "url": "https://*****", // http 请求的 URL 地址
+ "method": "POST", // http method,支持 GET / POST / PUT / DELETE
+ "data": { // 请求的参数,可选,如果 method 为 GET / DELETE,参数会作为 query string 追加到 url
+ "foo": "bar"
+ },
+ "headers": { //可选。额外的 header 字段
+ "token": "xxx"
+ },
+ "dataType": "json" // 期望返回的数据格式,默认 JSON,支持 JSON、text、base64、arraybuffer
+ }
}
- }
-]
+ ]
+}
```
### 属性说明
@@ -75,7 +77,8 @@
| data | Object | 否 | 请求的参数。
- 如果是 method 为 GET,会将参数做成 query 拼接在 url 后。
- 如果 method 为 POST,将默认以 x-www-form-urlencoded 提交。
|
## 请求数据
-当用户打开小程序时,客户端将向开发者服务器(上面配置的数据下载地址)发起请求,其中包含的参数如下,数据获取到后会将整个 HTTP body 缓存到本地。
+
+小程序冷启动时,客户端按配置向目标 URL 发起请求,并在 query string 中自动追加以下参数:
| **参数** | **类型** | **说明** |
| --- | --- | --- |
@@ -87,9 +90,13 @@
| foo | String | 业务自定义参数,key 和 value 为配置文件中的对应值 {"foo":"bar"}。 |
| --- | --- | --- |
+数据请求的 response body 将被缓存,供小程序获取。
+
## 获取数据
+
通过调用 [my.getBackgroundFetchData](https://opendocs.alipay.com/mini/api/getBackgroundFetchData) 获取预加载的数据:
+
``` js
Page({
onReady() {