Add response header X-Uncompressed-Content-Length
for JSON API
#1277
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add response header
X-Uncompressed-Content-Length
for JSON APIBecause the response from the API is PHP output, the usual
Content-Length
header is absent.This custom header technique allows the client to know the total length of the data being received, in order to display a progress indicator.
Here's a code example with
XMLHttpRequest
:Notes:
Fetch
can be used as well (only reason I useXMLHttpRequest
is becausefetch
doesn't allow to track the progress of uploaded data (when creating a paste); whereasXMLHttpRequest
does).e.loaded
can be different between browsers; Firefox reports the length of the compressed data, Chrome reports the length of uncompressed data (see Clarify ifProgressEvent.loaded
should indicate the size of compress, or uncompressed, data whatwg/xhr#388). A workaround for this is to manually set our progress indicator to 100% when the request finishes.