Как получить данные с сервера из JavaScript? - PullRequest
1 голос
/ 08 марта 2011

В моем веб-приложении есть гистограмма (нарисована с использованием javascript). Он может быть шире экрана, поэтому есть стрелки, которые перемещают график по оси X одним щелчком мыши (опять же, с использованием javascript).

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

Вместо этого, я хотел бы щелкнуть на сервере запрос новых данных, необходимых для рисования следующей части графика. Как это можно сделать?

Примечание. Я хочу запрашивать только данные, а не новую страницу. На стороне сервера находится Ruby on Rails v. 3.0.4.

Ответы [ 2 ]

1 голос
/ 08 марта 2011

Вам нужен Ajax для этого. Для этого вы можете использовать встроенный Prototype или любую другую библиотеку Javascript. Итак, давая вам пример использования jQuery, вы можете добавить обработчик кликов

$('#target').click(function() {
  // Use the $.ajax or equivalent function to send a request to a method in your controller
});

Так что в этом примере в вашем контроллере вы можете упомянуть код манипуляции с dom в методе, подобном приведенному ниже:

def target_method
  # Process data 
  # dom manipulation code
  render :update do |page|
    #use a rails javascript helper like replace_html or the likes
  end 
end

Или используйте ненавязчивый Javascript и вставьте код манипуляции DOM в файл js.erb.

Вот несколько полезных ссылок

  1. Rails API на помощниках по прототипам
  2. Ненавязчивый JavaScript на Rails
1 голос
/ 08 марта 2011

вам нужно будет посмотреть в AJAX http://edgeguides.rubyonrails.org/ajax_on_rails.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...