如何使用Rails UJS设置超时?

时间:2019-01-31 15:31:22

标签: javascript ruby-on-rails timeout ruby-on-rails-5 ujs

我使用的Rails 5.2.2和我想设置超时使用Rails UJS所以上显示请求超时的警报消息时。

我阅读了Official Guide for working with JavaScriptanswer related to this issue,但是指南没有写任何有关超时的内容,并且答案是有日期的。

我正在使用的.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 :(得分:1)

尝试一下:

$(function() {
    // ...

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

    // ...
});

可以使用jquery-ujs中的$ .rails.ajax属性,以在未显式传递超时的情况下注入超时。