Эй, отличный вопрос. Проблема заключается в циклических ссылках между объектами JavaScript и узлами DOM.
Допустим, у вас есть глобальный объект JavaScript, который указывает на узел DOM, а у узла есть свойство expando обратно к объекту. Когда страница выгружается, механизм сценариев «обнуляет» объект JavaScript, поэтому он больше не указывает на узел DOM. Но он не может освободить объект из памяти, потому что есть ссылка на него (из DOM). Затем механизм сценария завершается.
Свойства Expando в DOM - это не что иное, как ссылки на другие объекты. Когда DOM очищается, он разрушает эти ссылки, но предполагает, что объекты все еще используются. В этом примере DOM ожидает, пока обработчик сценариев не очистит принадлежащие ему объекты, но обработчик сценариев уже завершил работу.
Итак, проблема в том, что DOM заботится только о памяти, которая принадлежит ему, и предполагает, что механизм сценариев будет делать то же самое.
Надеюсь, это помогло.
См .: http://msdn.microsoft.com/en-us/library/bb250448%28VS.85%29.aspx