On Wed, May 7, 2008 at 12:49 PM, Tristan Seligmann
* Harald Blåtand
[2008-05-07 12:24:18 +0200]: Just thought that since we have IE all over the place, and we can't have an app that freezes if a user refreshes it, I might make a feeble attempt... By
Indeed, I'm in the same position with my own application: our userbase is currently 100% IE-using, with the exception of us developers ;)
I may have something now that keeps IE from hanging on a page refresh. Here's what I've changed in the 0.9.31 JS code: ------------------ Nevow/Athena/__init__.js (2 additions) -------------------------- Nevow.Athena.Widget._initialize = function() { Divmod.debug("widget", "Instantiating live widgets"); Nevow.Athena.Widget._pageLoaded = true; // With the next line, sendCloseMessage will get called in IE. // Harald Divmod.Base.addUnLoadEvent(Nevow.Athena.page.deliveryChannel); // Harald Nevow.Athena.Widget._instantiateWidgets(); Divmod.debug("widget", "Finished instantiating live widgets"); }; Nevow.Athena.bootstrap = function (pageClassName, clientID) { var self = this; var pageClass = Divmod.namedAny(pageClassName); self.page = pageClass(clientID, Nevow.Athena._createMessageDelivery); Nevow.Athena.page = self.page; // Harald self.page.bindEvents(window); ..... ------------------ Divmod/Base.js (1 added function at the end) -------------------------- Divmod.Base.addUnLoadEvent = function(channel) { /*** Harald's desperate try to get IE page refresh to work... ***/ window.attachEvent("onunload", function (e) {channel.sendCloseMessage();}); }; Divmod.Base.jsonRegistry = Divmod.Base.AdapterRegistry(); I'm not used to this coding style, so it's a bit of trial & error. Anyway, before, sendCloseMessage would _not_ be called; now it is, and I can refresh ad lib on IE 6.and 7. Not sure either what this will do to FF. (Since we're stuck with IE, I'm heavily abusing its non-standard extras, so I can't get my full app to run on FF.) Besides, you're better on FF than I am :-) Finally, to fix the onkeypress issue, I think we'd need to go deeper into the "this" dept. For me, the refresh is more important - if the users insist on pressing ESC, they can blame themselves.. ;-) What do you think? Regards, Harald