Для таких вещей лучше использовать
воркеры. тогда ситуации с зависанием страницы быть не должно. По сути Web Workers и создавались для подобных задач.
В вашем случае я рекомендую проверить где именно вешается страница. Если на этапе получения данных — то реализуйте их через $.ajax и выставьте timeout скажем в 1000.
И лучше сделайте так, что бы сервер возвращал json вида {online:true}. А потом уже в коллбэке делайте что хотите.