Home  >  Article  >  Web Front-end  >  What Are the Limitations of Opaque Responses in the Fetch API?

What Are the Limitations of Opaque Responses in the Fetch API?

DDD
DDDOriginal
2024-10-22 21:29:03329browse

What Are the Limitations of Opaque Responses in the Fetch API?

Limitations of Opaque Responses

Despite being part of the Fetch API, opaque responses have certain limitations that affect their usage. Here are some key restrictions:

Accessing Headers and Body

Opaque responses lack access to important properties like headers or the methods of the Body interface (e.g., json() or text()). This opaque nature prevents the retrieval of meaningful information from these responses.

Resource Usage on Pages

Opaque responses can serve as resources on a page in scenarios where the browser permits non-CORS cross-origin resources. However, they are not valid for all resource types, such as fonts. To determine the validity of opaque responses for a specific resource, consult the relevant specification.

Interaction with Cache Storage API

An unexpected limitation arises when using opaque responses with the Cache Storage API. Due to the lack of a meaningful status code, opaque responses (which always have a status of 0) can trigger errors when added to the cache using add() or addAll() methods.

To overcome this issue, explicitly perform a fetch() operation and use the put() method to store the opaque response, acknowledging the potential risks associated with caching error responses.

navigator.storage API

Opaque responses also introduce complications with the navigator.storage API. Browsers add significant padding to calculate storage quota limits and usage for opaque responses. In Google Chrome, for instance, the minimum contribution of a cached opaque response to overall storage usage is approximately 7 megabytes. This factor should be considered when caching opaque responses to avoid exceeding quota limitations prematurely.

The above is the detailed content of What Are the Limitations of Opaque Responses in the Fetch API?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn