1) Загружать HTML-структуру с сервера и назначать обработчики событий (классическая схема)
2) Загружать HTML с подключённым js-приложением, в котором есть всё необходимое, при этом BODY пуст (шаблоны на клиенте)
Не удивительно) Пример делал под предельные возможности вменяемых браузеров - длина массива в JSON'е == 100 000 FF не под силу такие объёмы, особенно если на машине памяти мало)