为什么onclick不会触发重新加载页面的功能?

问题描述 投票:0回答:1

我在其中一个视图中具有此功能,但是即使将功能绑定到该按钮,它似乎也不会每10秒重新加载一次页面。

  %footer.modal__footer
    %ul.modal__list
      %li.modal__list-item
        = submit_tag t('.start'), class: 'btn btn-success', id: 'AnalysisStart', :onClick=> 'refreshPage()'


:javascript
    function refreshPage(){
       window.setTimeout(function(){ document.location.reload(true); }, 10000);
  }

有人可以告诉我我做错了什么吗?还是我有其他方法可以实现这一目标?

也可以像这样插入js和ruby:

:javascript
-if document.analyses.ready.any?
    window.setTimeout(function(){ document.location.reload(true); }, 10000);

因为这样可以解决我的问题。

javascript haml
1个回答
0
投票

您的HAML代码似乎没问题。

如果您希望X秒钟后刷新页面,则可以像下面这样使用javascript:

const refreshAfter = (ms) => {
    setTimeout(()=>{
    document.location.reload(true)
  }, ms)
}

const onload = () => {
  refreshAfter(10000);
}

window.onload = onload;

这意味着在页面加载事件之后,计时器将等待(此处为10秒),然后通过调用refreshAfter函数刷新页面。然后,页面将刷新,并在10秒后刷新新页面。

如果要通过onclick按钮事件触发此功能,则可以直接调用refreshAfter函数。

但是,如果要在刷新页面之前等待服务器端分析结束,也许应该使用javascript Ajax调用来实现此目的,或者使用websockets。

© www.soinside.com 2019 - 2024. All rights reserved.