Хорошая идея, если взять 4байта на ид ролика (8байт для большого сайта), то 10к просмотров - это всего ~40кбайт, localStorage может хранить более 10Мб, проверка будет моментальной.
На сервере это можно хранить одним сжатым "блобом", и при первой загрузке синхронизировать с клиентом, в итоге минимум места и не тратимся на индексы.
Не знаю есть ли способ лучше, но этот выглядит отлично.
Да на монге не так, просмотрите первые страницы доки.
Далее, какой размер ответа получается?, возможно тормозит конвертация в json, так же может быть где-то паузы (виртуалка?) или другие глюки.
Если хотите скорость монги проверить - выполните запрос в консоли, или сделайте команду explain, вторая ваша команда должна отрабатывать за 0.1 мс или около того.
lavezzi1: Проверьте устанавливается ли значение this.models.checkCard.checked,
"==true" тут не обязательно
Пишите в step2 когда предыдущие в step1, не опечатка?
Проверьте по выходу из функции, что step2 - число
Никита Шуклин: Как вариант, если сервер упал, то клиент получает ошибку и ждет пока сервер встанет, либо пойдет на второй сервер. Далее отправляет запрос повторно с тем же ид (что-бы заказ не задублировался).
А если на форме несколько таймеров?