File size: 2,433 Bytes
e841ba5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
# AutoLoading 自动加载`Gradio`前端发送请求时自动为被包裹的内容添加加载动画。该组件会自动收集子组件的加载状态,建议至少在全局使用一次此组件,以显示兜底的加载反馈。

> **注:** 如果有多个嵌套的`AutoLoading`组件,则只有最内层的`AutoLoading`能收集到子组件的加载状态并展示加载动画。`Gradio`中,前端到服务端的请求一共有 4 种状态:

- `pending`:此时前端发出的请求还没有收到服务端的响应。
- `generating`:此时前端发出的请求已经收到了响应,但是服务端还没有完成所有内容返回(该状态并不是必定发生的,只有当服务端的处理函数使用`yield`返回值时才会存在)。
- `completed`:服务端返回了所有内容,本次请求结束。
- `error`:本次请求发生错误。

默认情况下,`AutoLoading`组件会:

- 在请求状态为`pending`时添加加载动画。
- 在请求状态为`generating`时结束加载动画,此时用户可以手动控制应用的加载效果,您也可以通过设置`generating=True`来继续展示动画。
- 在请求状态为`completed`时结束加载动画。
- 在请求状态为`error`时结束加载动画,您可以通过设置`show_error=True`来为用户展示错误信息(该信息会在页面居中显示)。

## 示例

<demo name="basic"></demo>

<demo name="nested" title="嵌套的 AutoLoading"></demo>

## API

| 属性         | 类型 | 默认值 | 描述                                                                                     |
| ------------ | ---- | ------ | ---------------------------------------------------------------------------------------- |
| generating   | bool | False  | 是否包含对`generating`状态的处理                                                         |
| show_error   | bool | True   | 是否显示错误信息                                                                         |
| show_mask    | bool | True   | 是否显示遮罩                                                                             |
| show_timer   | bool | True   | 是否显示计时器                                                                           |
| loading_text | str  | None   | 加载中文案,默认不填写使用 `Gradio` 的加载文案显示(包括加载时间、当前用户的排队队列等) |