- From: Jonas Sicking <jonas@sicking.cc>
- Date: Tue, 11 Aug 2009 19:20:12 -0700
- To: Webapps WG <public-webapps@w3.org>
Here is an alternative proposal for an API for reading files: [Constructor, Implements=EventTarget] interface FileRequest { readAsBinaryString(in FileData filedata); readAsText(in FileData filedata, [Optional] in DOMString); readAsDataURL(in File file); abort(); const unsigned short INITIAL = 0; const unsigned short LOADING = 1; const unsigned short DONE = 2; readonly attribute unsigned short readyState; readonly attribute DOMString response; readonly attribute unsigned long status; attribute Function onloadstart; attribute Function onprogress; attribute Function onload; attribute Function onabort; attribute Function onerror; attribute Function onloadend; }; Additionally, inside DOM Workers we could supply the following interface: [Constructor] interface FileRequestSync { DOMString readAsBinaryString(in FileData filedata); DOMString readAsText(in FileData filedata, [Optional] in DOMString); DOMString readAsDataURL(in File file); }; As stated, I'm not convinced that this is a better solution than what the spec currently does. The only advantage I can see is that it supports progress events without requiring the use of XMLHttpRequest, and the downside is that it's a significantly bigger API. Usage examples would be: Current draft: myFile.getAsBinaryString(handler); function handler(data, error) { doStuffWith(data); } Above API: reader = new FileReader; reader.readAsBinaryString(myFile); reader.onload = handler; function handler(event) { doStuffWith(event.target.response); } I'd be interested in feedback from others, especially from people that so far hasn't spoken up. / Jonas
Received on Wednesday, 12 August 2009 02:21:12 UTC