Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > HTML > Firefox 3.5.5 crapping itself on large updates inside event handlers, just me?

Reply
Thread Tools

Firefox 3.5.5 crapping itself on large updates inside event handlers, just me?

 
 
Nik Coughlin
Guest
Posts: n/a
 
      12-14-2009
Adding 2000 elements to the page outside an event handler takes a handful of
milliseconds. Doing the same from within an event handler takes over 6
seconds. Doesn't happen in Chrome, Opera, Safari or even IE.

Does anyone else see this with Firefox 3.5.5 or is it just something weird
happening on my computer? I thought it might be some flaky addon, so tried
it with a fresh Firefox profile, same result.

Demo:
http://nrkn.com/temp/ffwtf/

 
Reply With Quote
 
 
 
 
rf
Guest
Posts: n/a
 
      12-14-2009
Nik Coughlin wrote:
> Adding 2000 elements to the page outside an event handler takes a
> handful of milliseconds. Doing the same from within an event handler
> takes over 6 seconds. Doesn't happen in Chrome, Opera, Safari or even
> IE.
> Does anyone else see this with Firefox 3.5.5 or is it just something
> weird happening on my computer? I thought it might be some flaky
> addon, so tried it with a fresh Firefox profile, same result.
>
> Demo:
> http://nrkn.com/temp/ffwtf/


Inside event handler: 257ms.

Firefox 3.5.3.


 
Reply With Quote
 
 
 
 
dorayme
Guest
Posts: n/a
 
      12-14-2009
In article <lAlVm.62232$(E-Mail Removed)>,
"rf" <(E-Mail Removed)> wrote:

> Nik Coughlin wrote:
> > Adding 2000 elements to the page outside an event handler takes a
> > handful of milliseconds. Doing the same from within an event handler
> > takes over 6 seconds. Doesn't happen in Chrome, Opera, Safari or even
> > IE.
> > Does anyone else see this with Firefox 3.5.5 or is it just something
> > weird happening on my computer? I thought it might be some flaky
> > addon, so tried it with a fresh Firefox profile, same result.
> >
> > Demo:
> > http://nrkn.com/temp/ffwtf/

>
> Inside event handler: 257ms.
>
> Firefox 3.5.3.


Inside, 360ms on my Safari, but on my FF latest Mac, 2892ms

--
dorayme
 
Reply With Quote
 
Neredbojias
Guest
Posts: n/a
 
      12-14-2009
On 13 Dec 2009, "Nik Coughlin" <(E-Mail Removed)> wrote:

> Adding 2000 elements to the page outside an event handler takes a
> handful of milliseconds. Doing the same from within an event handler
> takes over 6 seconds. Doesn't happen in Chrome, Opera, Safari or even
> IE.
>
> Does anyone else see this with Firefox 3.5.5 or is it just something
> weird happening on my computer? I thought it might be some flaky
> addon, so tried it with a fresh Firefox profile, same result.
>
> Demo:
> http://nrkn.com/temp/ffwtf/


Repeated testing gave me 58ms outside/130ms inside in ff 3.5.5 on my
setup. In ie8 it was 0/0?? Opera 10.10 seems to be 16/16 and Safari
4.0.4 for Windows 6/59. Last but not least, SeaMonkey 1.1.16 showed
about 16/60-80. I dumped Chrome because its js runtime is bad.

--
Neredbojias
http://www.neredbojias.org/
http://www.neredbojias.net/
 
Reply With Quote
 
Gregor Kofler
Guest
Posts: n/a
 
      12-14-2009
Nik Coughlin meinte:
> Adding 2000 elements to the page outside an event handler takes a
> handful of milliseconds. Doing the same from within an event handler
> takes over 6 seconds. Doesn't happen in Chrome, Opera, Safari or even IE.
>
> Does anyone else see this with Firefox 3.5.5 or is it just something
> weird happening on my computer? I thought it might be some flaky addon,
> so tried it with a fresh Firefox profile, same result.
>
> Demo:
> http://nrkn.com/temp/ffwtf/


FF 3.5.5:
107ms vs. 253ms.

Chromium 4.0.270:
9ms vs. 103ms.

Opera: 10.10:
18ms vs. 23ms.

All on Ubuntu 9.10 64bit.


Gregor



--
http://www.gregorkofler.com
 
Reply With Quote
 
The Natural Philosopher
Guest
Posts: n/a
 
      12-14-2009
Nik Coughlin wrote:
> Adding 2000 elements to the page outside an event handler takes a
> handful of milliseconds. Doing the same from within an event handler
> takes over 6 seconds. Doesn't happen in Chrome, Opera, Safari or even IE.
>
> Does anyone else see this with Firefox 3.5.5 or is it just something
> weird happening on my computer? I thought it might be some flaky addon,
> so tried it with a fresh Firefox profile, same result.
>
> Demo:
> http://nrkn.com/temp/ffwtf/


Firefox 3.5.5 Debian 64bit linux 180/520 ms respectively.
 
Reply With Quote
 
Thomas 'PointedEars' Lahn
Guest
Posts: n/a
 
      12-14-2009
Nik Coughlin wrote:

> Adding 2000 elements to the page outside an event handler takes a handful
> of milliseconds. Doing the same from within an event handler takes over 6
> seconds. Doesn't happen in Chrome, Opera, Safari or even IE.
>
> Does anyone else see this with Firefox 3.5.5 or is it just something weird
> happening on my computer? I thought it might be some flaky addon, so
> tried it with a fresh Firefox profile, same result.
>
> Demo:
> http://nrkn.com/temp/ffwtf/


"Outside event handler: 99ms
Inside event handler: 11050ms"

in Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.5) Gecko/20091123
Iceweasel/3.5.5 (like Firefox/3.5.5; Debian-3.5.5-1) GTB5

("GTB" apparently means Google ToolBar but I have a lot of other add-ons
installed, too.)

But: Your analysis of the situation is wrong, and your test case is flawed.

0. There is no "page". The test case uses an (invalid) HTML document.

It must be considered invalid HTML because there is no public
standard that specifies its current HTML-resembling markup.
As a result, since there is not at least one implementation of it that
implements each feature (which is an exit criterion for a W3C Working
Draft to become a W3C Proposed Recommendation), it is more then likely
that different implementations exhibit different behavior already just
because of their different level of support for this non-standard markup.

Consequently, for the time being, Web development test cases should be
Valid HTML 4.01 (the newest Specification with Recommendation status)
unless a specific markup language and its DOM is being tested.

1. It is incorrect of you to say "inside event handler" and "outside event
handler" for two reasons:

1. The code in which you are using `innerHTML' is event _listener_-code.
(The built-in unmutable event handler of the DOM implementation calls
it.)

2. Where you display "outside event handler" is actually *within*
the event listener for the `load' event of the `body' element.

2. `test' is particularly bad an identifier for a property of the global
object, especially if there is an element with ID `test' in the test
document.

Remember that testing frameworks may introduce such a method that would
be overwritten, and that IDs of elements become the names of properties
of a host object in the scope chain in MSHTML/IE and potentially other
runtime environments that support this referencing.

3. You are missing here that non-standard implementations like that of
MSHTML do not pass a reference to an event object to an event listener.

As a result, for those environments you are displaying the wrong text
(according to your wrong definition, though) because `e' is either `null'
or (being `undefined' in my tests with MSIE 6.0 on Wine) converts to 0,
the same as `null' does. (See the ECMAScript Language Specification,
Edition 5, 11.9.3, steps 3, 8 and 9, and Edition 3 Final which
corresponds more with the tested environment but says the same.)

4. *Most important*: You are missing here that the initial situation for the
second test is not the same as for the first test.

Because in the first test the `div' element with ID `test' did not have
any children before the assignment to `innerHTML', while in the second
test it did have 2000 SPAN children each with one text node child that
need to be removed first.

That need for removal, potential marking for garbage collection or
effective garbage collection of host objects no longer being referred to,
and re-addition would explain the greater time it takes very well, much
better than your (provably wrong) notion of "outside" and "inside".

The differences between runtime environments that you observed could then
be easily attributed to a more sophisticated comparison algorithm in the
`innerHTML' setter (that would not remove and re-add if the content is
the same), and garbage collection using other parameters, in at least
one of these environments. As for the former, it would be worth to take
a look at the source code of the respective implementation; as for the
latter, it would be worth to take a look at the size of the memory
footprint of the user agent before and after the test.

Bottom line: Be sure what you are testing before complaining, and avoid the
proprietary `innerHTML' property (as if that was news around here).


F'up2 comp.lang.javascript;
please do not crosspost to alt.* and Usenet without.

PointedEars
--
Use any version of Microsoft Frontpage to create your site.
(This won't prevent people from viewing your source, but no one
will want to steal it.)
-- from <http://www.vortex-webdesign.com/help/hidesource.htm> (404-comp.)
 
Reply With Quote
 
Roy A.
Guest
Posts: n/a
 
      12-16-2009
On 14 Des, 07:42, "Nik Coughlin" <(E-Mail Removed)> wrote:
> Adding 2000 elements to the page outside an event handler takes a handful of
> milliseconds. Doing the same from within an event handler takes over 6
> seconds. Doesn't happen in Chrome, Opera, Safari or even IE.
>
> Does anyone else see this with Firefox 3.5.5 or is it just something weird
> happening on my computer? *I thought it might be some flaky addon, so tried
> it with a fresh Firefox profile, same result.
>
> Demo:http://nrkn.com/temp/ffwtf/


As Thomas 'PointedEars' Lahn says "your test case is flawed", but you
have proven a point I allready know. Firefox, in many cases sucks. A
bare bone browser like Firefox should be best in test cases like this.
It can't compete with Google Chrome, but it should be better than any
other browser. There is far to many web pages that is badly written,
so the error handling in firefox should far be better than this.

Even if your is "your test case is flawed", the numbers is correct.
All is happening inside a javascript body, and the rest of the
document is all ready fixed. Firefox is just not up to the task.
 
Reply With Quote
 
Neredbojias
Guest
Posts: n/a
 
      12-16-2009
On 16 Dec 2009, "Roy A." <(E-Mail Removed)> wrote:

> On 14 Des, 07:42, "Nik Coughlin" <(E-Mail Removed)> wrote:
>> Adding 2000 elements to the page outside an event handler takes a
>> handful

> of
>> milliseconds. Doing the same from within an event handler takes over
>> 6 seconds. Doesn't happen in Chrome, Opera, Safari or even IE.
>>
>> Does anyone else see this with Firefox 3.5.5 or is it just something
>> weir

> d
>> happening on my computer? *I thought it might be some flaky addon,
>> so t

> ried
>> it with a fresh Firefox profile, same result.
>>
>> Demo:http://nrkn.com/temp/ffwtf/

>
> As Thomas 'PointedEars' Lahn says "your test case is flawed", but you
> have proven a point I allready know. Firefox, in many cases sucks. A
> bare bone browser like Firefox should be best in test cases like
> this. It can't compete with Google Chrome, but it should be better
> than any other browser. There is far to many web pages that is badly
> written, so the error handling in firefox should far be better than
> this.


Bull. Ff may be slower than Chrome but Chrome is seriously flawed when
it comes to javascript. Besides, the OP's lament is atypical and
probably relates to something specific to his dilemma. And just how
*should* ff (or any browser) handle errors in code or markup as well?

> Even if your is "your test case is flawed", the numbers is correct.
> All is happening inside a javascript body, and the rest of the
> document is all ready fixed. Firefox is just not up to the task.


I do agree that Mozilla should address the nagging, long-persistent
parsing problems that still infest the browser and strive to make it
load more quickly than it presently does rather than trying to
incorporate new doodads which will ultimately only add to the problem.
Nevertheless, ff is the best browser out there and has been for a long
time.

--
Neredbojias
http://www.neredbojias.org/
http://www.neredbojias.net/
 
Reply With Quote
 
Roy A.
Guest
Posts: n/a
 
      12-16-2009
On 16 Des, 15:40, Neredbojias <(E-Mail Removed)> wrote:
> On 16 Dec 2009, "Roy A." <(E-Mail Removed)> wrote:
>
>
>
>
>
> > On 14 Des, 07:42, "Nik Coughlin" <(E-Mail Removed)> wrote:
> >> Adding 2000 elements to the page outside an event handler takes a
> >> handful

> > *of
> >> milliseconds. Doing the same from within an event handler takes over
> >> 6 seconds. Doesn't happen in Chrome, Opera, Safari or even IE.

>
> >> Does anyone else see this with Firefox 3.5.5 or is it just something
> >> weir

> > d
> >> happening on my computer? *I thought it might be some flaky addon,
> >> so t

> > ried
> >> it with a fresh Firefox profile, same result.

>
> >> Demo:http://nrkn.com/temp/ffwtf/

>
> > As Thomas 'PointedEars' Lahn says "your test case is flawed", but you
> > have proven a point I allready know. Firefox, in many cases sucks. A
> > bare bone browser like Firefox should be best in test cases like
> > this. It can't compete with Google Chrome, but it should be better
> > than any other browser. There is far to many web pages that is badly
> > written, so the error handling in firefox should far be better than
> > this.

>
> Bull. *Ff may be slower than Chrome


I agree.

> but Chrome is seriously flawed when
> it comes to javascript. *Besides, the OP's lament is atypical and
> probably relates to something specific to his dilemma. *And just how
> *should* ff (or any browser) handle errors in code or markup as well?
>
> > Even if your is "your test case is flawed", the numbers is correct.
> > All is happening inside a javascript body, and the rest of the
> > document is all ready fixed. Firefox is just not up to the task.

>
> I do agree that Mozilla should address the nagging, long-persistent
> parsing problems that still infest the browser and strive to make it
> load more quickly than it presently does rather than trying to
> incorporate new doodads which will ultimately only add to the problem.
> Nevertheless, ff is the best browser out there and has been for a long
> time.


FF is not near the best browser out there. It is bare bone, and it
stinks.
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Is HDD crapping out (after only 4 months) or do I just need to reinstallWin7? zxcvbob Computer Support 17 03-29-2010 05:26 PM
Firefox 3.5.5 crapping itself on large updates inside event handlers, just me? Nik Coughlin Javascript 22 12-18-2009 04:06 PM
Firefox 3.5.5 crapping itself (redux) Nik Coughlin Javascript 28 12-16-2009 07:14 AM
obtain element name, or attribute and value of the document name itself, and some elemnts and attributes from an ancestor or the node itself using xquery Jeff Kish XML 4 10-30-2008 05:47 PM
PythonService crapping out sam Python 1 05-12-2004 12:32 AM



Advertisments