【问题标题】:How to set timeout using Rails UJS?如何使用 Rails UJS 设置超时?
【发布时间】:2019-01-31 15:31:21
【问题描述】:

我正在使用 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>

【问题讨论】:

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


    【解决方案1】:

    试试这个:

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

    如果没有显式传递超时,您可以使用 jquery-ujs 中的 $.rails.ajax 属性来注入超时。

    【讨论】:

    • 我应该在哪里插入关于问题中代码的代码,例如在ajax:before 监听器中?应如何/在何处处理请求超时,例如在ajax:error 监听器中?检查超时时是否显示警报的条件是什么?你能举个例子吗?
    • 有没有办法使用 Rails UJS 显式传递超时?
    猜你喜欢
    • 1970-01-01
    • 2012-01-08
    • 2019-04-05
    • 2023-02-10
    • 2021-12-03
    • 2018-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多