iKapex
@iKapex

Как сделать preloader на send_data?

Есть action, который по запросы выкачивает большой объем данных. Как дать понять пользователю, что его запрос выполняется? AJAX - не вариант, - send_data не работает. В Resque.enqueue send_data тоже не работает. Что делать?

Всем спасибо за ответы.
  • Вопрос задан
  • 191 просмотр
Решения вопроса 1
hummingbird
@hummingbird
Можно к кнопке добавить:
data: { disable_with: 'Ожидайте' }

А также по ее нажатию с помощью JavaScript можно перевести все поля в "только для чтения", а также с помощью все того же JavaScript можно вывести анимированную иконку (смотри fa-spin у Font Awesome) и надпись рядом, мол: "Ожидайте. Ваш запрос обрабатывается."

UPD
Или же лучше сделать так. В форму добавьте это:
remote: true

Далее смотрите ID формы и добавляйте JS обработчик (CoffeeScript):
$(document).ready ->
	$("#form-id").on("ajax:success", (e, data, status, xhr) ->
		#	Тут какой-нибудь код, когда все хорошо. Передаваемый JSON доступен в data.
	).on "ajax:error", (e, xhr, status, error) ->
		#	Тут какой-нибудь код, когда все очень плохо.
return


В итоге, если success или error, то скрываете форму и прогресс, а затем на месте всего этого отображается то или иное сообщение.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы