Доступ к обновленным данным без повторного рендеринга всей страницы - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть модель Person, местоположение которой обновляется каждые несколько секунд из мобильного приложения и сохраняется в базе данных.Теперь я хочу получить доступ к обновленной информации в представлении без перерисовки всей страницы.

Как мне это сделать?

Я хочу сделать что-то подобное

setInterval(function(){
  // display updated data
}, 5000);

ps: я использую JavaScript только для временного интервала, это вопрос Rails.

Перезагрузка страницы через каждые несколько секунд работает, но полностью убивает то, что я пытаюсь сделать.

1 Ответ

0 голосов
/ 26 сентября 2019

Получить данные с помощью запроса ajax.Предположим, что div, который вы хотите обновить, имеет идентификатор current-location, который вы можете сделать ...

setInterval(function() {    
  $.ajax({
    type: 'POST',
    url: "/people/<%=@person.id%>/get_location",
    success: function(data) {
      $('#current-location').html(data.location);
    }
  });
}, 5000);

В вашем rout.rb укажите путь к члену

resources :people 
  member do
    post :get_location
  end
end

Затем создайтедействие в вашем PeopleController с именем get_location и убедитесь, что последние строки что-то вроде ...

person_location = get_location # some method that returns location
render json: {location: person_location}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...