Как установить время ожидания с помощью Rails UJS? - PullRequest
0 голосов
/ 31 января 2019

Я использую Rails 5.2.2, и я хотел бы установить тайм-аут при использовании Rails UJS, чтобы отображать предупреждающее сообщение при тайм-ауте запроса.

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

В моем .html.erb файле просмотра, который я использую:

<input id="element_dom_id" type="checkbox" data-remote="true" data-url="/a_url" data-params="key=value" data-method="patch">

<script type="text/javascript">
  document.getElementById('element_dom_id').addEventListener(
    'ajax:success', function(event) {
      ...
    }
  );
  document.getElementById('element_dom_id').addEventListener(
    'ajax:error', function(event) {
      ...
    }
  );
  ...
</script>

1 Ответ

0 голосов
/ 31 января 2019

Попробуйте это:

$(function() {
    // ...

    $.rails.ajax = function(options) {
      if (!options.timeout) {
        options.timeout = 100000;
      }      
      return $.ajax(options);
    };

    // ...
});

Вы можете использовать свойство $ .rails.ajax из jquery-ujs, чтобы ввести время ожидания, если оно не было передано явно.

...