所以我试图找到一种更好的方法来刷新页面。我有一个应用程序,它使用您在系统上捕获的数据构建 Excel 电子表格。所以我所做的只是每 10 秒重新加载一次页面,直到它完成,以便可以正确显示通知。
像这样的东西(它在 HAML 语法中)
.pending_downloads
- if downloads_policy.pending?
.notification_notice
= image_tag 'spinner.gif'
Your data download is being prepared. This should only take a few minutes. It is safe to leave this page and return later.
= link_to "Cancel download.", download_path(downloads_policy.pending), :method => :delete, :class => "delete_link"
= javascript_tag("ToolkitApplication.periodical_reload();")
该periodical_reload();
方法的 Ajax(在 coffeescript 中)如下所示:
class @ToolkitApplication
this.periodical_reload = () ->
setInterval (->
window.location.reload()
), 10000
这种方法我觉得可以做得更好。我想让 ajax 每 3 秒查询一次模型,以查看对象状态何时更改,然后一旦更改,它将重新加载窗口。因此,在下载准备好之前,您不会像 10 次那样重新加载页面,每次我尝试重新搜索是否可能时,我都会得到这个rubyonrails 指南,它对这种边缘情况并没有真正的洞察力。这是否可能,如果可以,是否有任何关于如何做到这一点的好的教程/博客文章/建议?谷歌一无所获。