Javascript 如何使用Rails UJS设置超时?

Javascript 如何使用Rails UJS设置超时?,javascript,ruby-on-rails,timeout,ruby-on-rails-5,ujs,Javascript,Ruby On Rails,Timeout,Ruby On Rails 5,Ujs,我使用的是Rails 5.2.2,我想在使用Rails UJS时设置一个超时,以便在请求超时时显示一条警报消息 我读了和,但指南没有写任何关于超时的内容,答案是有日期的 在my.html.erb视图文件中,我正在使用: <input id="element_dom_id" type="checkbox" data-remote="true" data-url="/a_url" data-params="key=value" data-method="patch"> <scri

我使用的是Rails 5.2.2,我想在使用Rails UJS时设置一个超时,以便在请求超时时显示一条警报消息

我读了和,但指南没有写任何关于超时的内容,答案是有日期的

在my.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>
试试这个:

$(function() {
    // ...

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

    // ...
});

您可以使用jquery ujs中的$.rails.ajax属性,以便在超时没有被明确传递的情况下注入超时。

我应该在哪里插入与问题中的代码相关的代码,例如在ajax:before侦听器中?如何/在何处处理请求超时,例如在ajax:error侦听器中?检查超时时是否显示警报的条件是什么?您能提供一个例子吗?有没有一种方法可以使用Rails UJS显式地传递超时?