我在其中一个视图中具有此功能,但是即使将功能绑定到该按钮,它似乎也不会每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);
因为这样可以解决我的问题。
您的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。