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