On Mon, Oct 3, 2011 at 9:13 PM, Jonas Sicking <[email protected]> wrote:
> So what exactly are you proposing we do for XHR and for > FileReader/FileWriter? > For APIs other than XHR, don't allow calling read* or abort during events fired on the object from its own algorithms. This should give the guarantee that loadstart and loadend will always be paired and non-interleaved, and give developers a simple rule: if you need to start a new operation from these events, push it into a timer (queue a task). (More precisely, no method that starts or finishes a loadstart/loadend sequence can be called from within an algorithm that also starts or finishes a sequence. abort() from within onprogress is fine, for example.) I don't have a strong opinion about what to do with XHR--my main worry is not perpetuating ugliness into every PE API in order to mimic XHR. And it only weakens the invariant, not removes it. So instead of > > * There's exactly one 'loadend' event for each 'loadstart' event. > > we'll have > > * There's always a 'loadend' event fired after each 'loadstart' event. > However there might be other 'loadstart' events fired in between. > When can this happen, with the above restriction in place (speaking of eg. FileReader, not XHR)? -- Glenn Maynard
