- From: Maciej Stachowiak <mjs@apple.com>
- Date: Mon, 5 Mar 2007 17:49:08 -0800
- To: web API <public-webapi@w3.org>
- Message-Id: <0B52FCAF-C2E6-4A75-8A98-525CE7936620@apple.com>
Hi everyone,
Anne, Ian and I were discussing the fact that the Progress Events
spec requires duplicates of every event for upload as well as
download. This makes the spec a fair bit more complicated, especially
if it ends up specifying a number of different progress events.
As far as I know, this feature is only needed for XMLHttpRequest,
since it's the only obvious element we can think of that does both
upload and download, and where it's important to keep the two separate.
However, we thought of a possible alternate design that might cover
this case better. In brief, the idea is to use the same set of events
for upload and download, but to provide a separate EventTarget
attached to the XMLHttpRequest object, which is the target all the
upload-related events; XHR itself only dispatches the download events.
In practice, it would look like this in code:
xhr.addEventListener('progress', func, false);
xhr.upload.addEventListener('progress', func, false);
However, this becomes much more useful when you have a reusable
upload/download progress UI control:
var downloadURI = new ProgressUI(xhr);
var uploadUI = new ProgressUI(xhr.upload);
With separate events, you would need either two controls, or a way to
put the control in a mode where it listens to either only upload or
only download events.
This would require a change in XHR to adopt the Progress Events spec,
but would considerably simplify Progress Events. Thoughts?
Regards,
Maciej
Received on Tuesday, 6 March 2007 01:49:16 UTC