I am currently working on an AJAX application (prototype 1.6.1). As
usual, it runs very well on Chrome and Firefox but we encounter
difficulties, particularly with Internet Explorer 6.

After much research, it appears that the problem is related to the
"memory leak". In fact, i reload only some parts of page. (I keep
always the header and footer) so a large part of the memory used is
never released.

I found a solution partially responsive to my needs but it involves
changing the core prototype. Prior to Ajax call, I clean all events on
elements will be replaced (like _destroyCache during the unload of

There may be a cleaner solution but I have not found.

My changes here:
   remove: function (element) (
     / / Begin Fix
     if (element = $ (element))
         element.stopObserving (false, true);
     / / End Fix
     element.parentNode.removeChild (element);
     return element;

   stopObserving function (element, eventName, handler) (
     element = $ (element);

     / / Begin Fix
     if (handler === true) (
         for (var i = 0, length = CACHE.length; i <length; i + +)
             if (CACHE [i]. descendantOf
                  CACHE & & [i]. DescendantOf (element)) (
                 Event.stopObserving (CACHE [i], eventName);
                 CACHE [i] = undefined;
         CACHE = CACHE.reject (Object.isUndefined);
     / / End Fix

In view of the evolution of AJAX and implementation of Internet
Explorer browsers, I think it may be advisable to incorporate a
equivalent system in core of prototype.

Regards, Franck

You received this message because you are subscribed to the Google Groups 
"Prototype: Core" group.
To post to this group, send email to prototype-core@googlegroups.com
To unsubscribe from this group, send email to 
For more options, visit this group at 

Reply via email to