Надлежащим местом для этого является onunload. onbeforenload предназначен для использования, когда вам может понадобиться остановить пользователя, когда он покидает страницу, например, при наличии несохраненных данных.
Я бы устал писать код для всех случаев, потому что вы не готовы тестировать все случаи. Если вы проводите исследования и обнаруживаете, что это слишком сложно для всех браузеров, то да, сделайте все возможное. Тем не менее, я считаю, что нет проблем с выполнением локального хранилища при загрузке. Я действительно столкнулся с проблемой, пытаясь отправить информацию на сервер при загрузке. Это не произошло надежно во всех браузерах, поэтому я в итоге применил подход, который использовал как unload, так и beforeunload, но только после надлежащей проверки.
Поэтому я предлагаю сделать это при загрузке, проверьте все ваши браузеры.