Я использовал Spring.NET в прошлом и имевшем большом успехе с ним. Я никогда не замечал существенных издержек с ним, хотя проект, на котором мы использовали его, был довольно тяжел самостоятельно. Это только сняло показания небольшого времени через документация для получения настроенного.
По моему опыту onunload работает по-разному в разных браузерах. Почему бы вам не использовать вместо этого другой обработчик событий, называемый onbeforeunload. Он должен работать. Onbeforeunload будет выполняться до закрытия окна, поэтому проблема должна быть решена.
Попробуйте:
window.onbeforeunload = function() { ...your code... }
window.onbeforeunload = function() {
return 'You have unsaved changes!';
}
См. Статью MSDN о onbeforeunload
Также есть аналогичный вопрос в SO