Я прогуглил некоторые учебники, просмотрел некоторые ответы SO и не смог найти рецепт для моей проблемы.
Я пишу веб-сайт, который должен отображать график акций почти в реальном времени.
Данные хранятся в постоянно обновляемой базе данных MySQL, я написал код запроса find_by_sql, который выбирает все данные, которые мне нужны для построения моего графика. Все в порядке, кроме производительности - для разных запросов требуется от одной секунды до одной минуты, чтобы получить все данные из базы данных, на этот раз необходимо выполнить необходимые (My) вычисления на стороне SQL-сервера. Это просто недопустимо.
У меня возникла следующая идея: если данные запрашиваются с сервера MySQL по одному пункту за раз вместо всего набора данных, для получения отдельной точки требуется всего около 1-100 мс.
Я полагаю, что процесс извлечения данных может управляться браузером. После того, как пользователь нажимает кнопку, чтобы нарисовать график, контроллер делает один запрос к базе данных и отображает, скажем, индикатор выполнения, скажем, на 1% готов. Когда браузер получает ответ, он немедленно делает запрос (ajax), и сервер выбирает следующий фрагмент данных и отображает «2%».
И так до тех пор, пока все данные не будут готовы и сервер не отобразит запрошенный график.
Может ли это быть реализовано в rails + js, есть ли учебник для решения аналогичной проблемы в сети? Я полагаю, если это вообще возможно, кто-то должен был сделать это раньше.
Я прочитал несколько статей о AJAX, полагаю, что я понимаю общие принципы, но никогда сам не занимался нетривиальным AJA-программированием.
.
Спасибо за ваше время!