docs(service-worker): describe how asset-/data-group order affects request handling (#38364)
The order of asset- and data-groups in `ngsw-config.json` affects how a request is handled by the ServiceWorker. Previously, this was not clearly documented. This commit describes how the order of asset-/data-groups affects request handling. Closes #21189 PR Close #38364
This commit is contained in:
parent
0551fbdf88
commit
18cd1a9937
|
@ -53,14 +53,27 @@ This field contains an array of asset groups, each of which defines a set of ass
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"assetGroups": [{
|
"assetGroups": [
|
||||||
|
{
|
||||||
...
|
...
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
...
|
...
|
||||||
}]
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
<div class="alert is-helpful">
|
||||||
|
|
||||||
|
When the ServiceWorker handles a request, it checks asset groups in the order in which they appear in `ngsw-config.json`.
|
||||||
|
The first asset group that matches the requested resource handles the request.
|
||||||
|
|
||||||
|
It is recommended that you put the more specific asset groups higher in the list.
|
||||||
|
For example, an asset group that matches `/foo.js` should appear before one that matches `*.js`.
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
Each asset group specifies both a group of resources and a policy that governs them. This policy determines when the resources are fetched and what happens when changes are detected.
|
Each asset group specifies both a group of resources and a policy that governs them. This policy determines when the resources are fetched and what happens when changes are detected.
|
||||||
|
|
||||||
Asset groups follow the Typescript interface shown here:
|
Asset groups follow the Typescript interface shown here:
|
||||||
|
@ -123,6 +136,31 @@ These options are used to modify the matching behavior of requests. They are pas
|
||||||
|
|
||||||
Unlike asset resources, data requests are not versioned along with the app. They're cached according to manually-configured policies that are more useful for situations such as API requests and other data dependencies.
|
Unlike asset resources, data requests are not versioned along with the app. They're cached according to manually-configured policies that are more useful for situations such as API requests and other data dependencies.
|
||||||
|
|
||||||
|
This field contains an array of data groups, each of which defines a set of data resources and the policy by which they are cached.
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dataGroups": [
|
||||||
|
{
|
||||||
|
...
|
||||||
|
},
|
||||||
|
{
|
||||||
|
...
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
<div class="alert is-helpful">
|
||||||
|
|
||||||
|
When the ServiceWorker handles a request, it checks data groups in the order in which they appear in `ngsw-config.json`.
|
||||||
|
The first data group that matches the requested resource handles the request.
|
||||||
|
|
||||||
|
It is recommended that you put the more specific data groups higher in the list.
|
||||||
|
For example, a data group that matches `/api/foo.json` should appear before one that matches `/api/*.json`.
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
Data groups follow this Typescript interface:
|
Data groups follow this Typescript interface:
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
|
|
Loading…
Reference in New Issue