Works as both Ajax and full page reload.