JavaScript + onbeforeunload

Mam pytanie dotyczące mojej aplikacji. Gdy użytkownik przypadkowo zamknie okno przeglądarki, chciałbym wcześniej wykonać kilka operacji czyszczenia. Użyłem zdarzenia onunload, ale problem polega na tym, że zdarzenie to czasami wystrzeliwuje, a czasami nie. Co powinienem zrobić, czy jest lepszy sposób na rozwiązanie tego typu problemów.