W3C home > Mailing lists > Public > whatwg@whatwg.org > September 2007

[whatwg] Progress Events "done" event

From: Křištof Želechovski <giecrilj@stegny.2a.pl>
Date: Tue, 11 Sep 2007 21:38:54 +0200
Message-ID: <000201c7f4ab$6bea7160$4d01010a@IBM42F76C011DF>
Why is 
	xhr.addEventListener("done", callCompleteHandler, false);
more concise than
	add_done_hook(xhr, cch)?
The former line is actually longer.

While English does not have loops, it has quantifiers and relations that are
quite convenient for most common purposes.  I do not think English with
loops would be cool.  C has loops but it is not cool at all.  It is
doubleplusuncool.  Declarative languages are, in general, cooler than
functional ones.  You need special languages for special purposes and there
is nothing weird about this fact.

Chris

-----Original Message-----
From: Garrett Smith [mailto:dhtmlkitchen@gmail.com] 
Sent: Monday, September 10, 2007 11:33 PM
To: K?i?tof ?elechovski
Cc: whatwg at whatwg.org; chaals at opera.com
Subject: Re: [whatwg] Progress Events "done" event

On 8/27/07, K?i?tof ?elechovski <giecrilj at stegny.2a.pl> wrote:
> Remember that JavaScript is a programming language after all.  You can use
a
> loop to get rid of the repetitions.
> Start from
> var done = ["load", "error", "abort"]...
> and apply the closure image.aEL(?, hPB, false) to it.
> Sincerely,
> Chris
>
That is true, in fact, it would also be possible to use Array.forEach
on that array.

The disadvantage is that it still invites code repetition. It is less
concise.

On the contrary:

xhr.addEventListener("done", callCompleteHandler, false);
function callCompleteHandler(e) {

}

Translates the use case to code quite naturally.


I like to make these examples that are conceptually similar:

"I'm going to call my friend and then I'm going to the dry cleaner."
vs.

"I'm going to call my friend and if she's not available, after that,
I'm going to the dry cleaner and if the call failed, after that, I'm
going to the dry cleaner, and if we talk for a bit, after that...

You get the point. English doesn't have loops or generators (hey
wouldn't that be cool!).

My point is that having a done event is more concise and makes
realizing the use-case requirement to code more explicit.

Garrett

> -----Original Message-----
> From: whatwg-bounces at lists.whatwg.org
> [mailto:whatwg-bounces at lists.whatwg.org] On Behalf Of Garrett Smith
> Sent: Sunday, August 26, 2007 8:25 AM
> To: whatwg at whatwg.org
> Cc: chaals at opera.com
> Subject: [whatwg] Progress Events "done" event
>
>
> ==========================================
> function showImage(imageHref) {
> ...
>
> // remove the progress bar when done.
>        image.addEventListener("load", hideProgressBar, false);
>        image.addEventListener("error", hideProgressBar, false);
>        image.addEventListener("abort", hideProgressBar, false);
> }
> ==========================================
>
> This is somewhat verbose. Clearly, the author is forced to repeat
> himself when all he really wants to do is hide the progress bar after
> the call is done.
>
>
>
>
>


-- 
Programming is a collaborative art.
Received on Tuesday, 11 September 2007 12:38:54 UTC

This archive was generated by hypermail 2.4.0 : Wednesday, 22 January 2020 16:58:57 UTC