IE Smites Us Again

Where is the much anticipated Nirvana upgrade we were hoping to release over the weekend? Well, ahem, our “friend” the-slow-script-alert decided to haunt our Internet Explorer power users again. We know we know, it’s our responsibility to work out the kinks, and IE accounts for less than 5 percent of our current user base, but we are expecting this number to grow and we must ensure Nirvana plays nice in the Microsoft eco-system.

Granted the alert only affects hard core users of Nirvana (you need to have entered a lot of tasks for the alert to popup) — these are the very last people we want to upset.

We couldn’t upgrade knowing that we’d be stomping on our best IE users.

So getting technical for a moment (or skip this paragraph if you don’t want to), with the user interface overhaul and added features/filters, the number of event listeners (such as click-handlers, mouseenter/leave etc) have been balooning. jQuery, which we use for ajax and DOM manipulation, is absolutely amazing — but is often used sparingly on your typical web site. Nirvana, however, is 99% DOM manipulation, and using jQuery the way most people do (and the way we have been thus far) can really start to push the boundaries of what the average browser was designed to handle. We’ve been attaching listeners to individual elements as they are rendered on screen (think checkboxes, date widgets, context menus, note detail togglers — on every task). This means that as the number of task on screen increases, so do the number of listeners (and the size/complexity of the DOM parsing). So over time with longer and longer lists, you get more and more event listeners that are constantly “listening” to every move, and it just drains your browsers resources. So, while this is the typical jQuery way of listening for events, and while it certainly is convenient for quick coding, we are taking another approach. We are now attaching ONE click event listener to the “body” element, and are determining when to do something (or not) based on what was clicked AFTER the event bubbles up. This is how many other js libraries work by default, and there’s really no reason not to do things this way with the jQuery we know and love (…except that it really is so much more convinient to simply attach listeners to DOM elements with CSS style selectors, but whatever). The boost in performance for YOU outweighs the development convenience for US. So, you win.

The upshot: we are heads-down rewriting a large chunk of the application, with the added benefit that it has sped up Nirvana performance not only for users of IE, but for other browsers as well. A huge win at the cost of a few more days of patience.

We will release just as soon as we’re convinced everything is stable.
Thanks for understanding…


  1. MardiGrasStephen

    Thanks for the update.

    At least you are hitting your growing pains while still in beta.


  2. JamesT

    Thanks for the update Elbert. I’m really looking forward to the new features – so good to know they are coming soon.

    One comment on your IE stats. They may indicate your current IE base, but they don’t indicate what your base would be if IE actually worked on Nirvana.

    I for one ONLY use Firefor for Nirvana. I’d much prefer to be using Nirvna on IE.

    Keep up the good work!

  3. Sad to hear that, I know the feeling, happened to me several times.

    What I’m really pleased about is that you didn’t left us in the dark wondering what happened and you even explained what happened. Cheers for that!

    Anyways, just wanted to let you know that even though you weren’t able to release it now the effort we all know you did, and do everyday, to please us is legendary! So, thanks for everything you’ve done and still do for us! I for one I’m very pleased and ultra happy about it!

  4. Thanks for keeping us informed! Good luck, and I look forward to seeing the new version!!


  5. Thanks for info, but…

    Be specific. You’re talking about IE6 or IE globally? Google stopped supporting IE6 for Docs and Sites. You can do it too.

    WHO is using IE today? 🙂 It’s the most outdated browser and everyone is still optimizing modern source code using ugly hacks and tricks to this joky browser.

    In bussines world, it takes a lot of time and MONEY optimizing projects to this “browser”. 1/2 of time=developing, 1/2 optimizing. I hate it.

    Wish a lot of patience.

  6. Elbert

    @stefan – Specifically, IE8 is the craw in our throat. IE8 (which is still a “standard” browser like it or not) was not designed with the level of js/dom interactivity that is now considered the norm for modern web-apps. Safari and Chrome are built around js/dom engines (v8/nitro/webkit) that are specifically optimized for exactly this type of web-app. Firefox has been working hard to match the WebKit browsers.

    The core problem is that IE has some pretty low (lame) thresholds for what it considers a slow running script… that aren’t even based on execution time — so the notion of “slow” isn’t even accurate.

    You can read more about it at if you like… slide 97 and onwards.

    From what I’ve read, IE9 is supposed to be better, but that’s still aways off, alas…

    In the mean time, we know what we need to do, and are tackling the “problem” spots in our code one by one.

  7. Jon

    As an IE8 “power” user who has had the slow script issues and has no other browser options at work – thank you for your proactive stance!

  8. Thanks for the update. I’m hoping IE9 will solve some of the issues, but IE7 and later will still need to be supported, so I understand your strategy for changing the event handling approach.

    Thankfully, I haven’t had many issues since switching to Chrome from FF (horrible memory hog). I’d love to use IE more, and I am a MS fan (especially their dev tools), but, unfortunately, I usually avoid IE whenever possible these days.

    Loving Nirvana so far (a Toodledo convert)!

  9. Kar Yung Tom

    Elbert, could we just get a small update? =D Thanks!

  10. Frank

    Well… The web app has been down for the longest I have ever experienced. Fingers crossed!! 🙂

  11. … and we’re upgraded! login and let us know what we screwed up! (hopefully we didn’t)

Comments are closed.