如何在上传图片后重新加载页面

我在sidekiq中使用了gem’jquery-fileupload-rails’和’carrierwave_backgrounder’gem。 如何在下载完成后添加重新加载页面?

问题是下载是在后台并且页面立即重新加载,而不是在加载图像时

fileupload.js

$(function () { $('#new_photo').fileupload({ acceptFileTypes: '/(\.|\/)(gif|jpe?g|png)$/i', dataType: 'html', add: function (e, data) { data.context = $('#loading').css({display:"block"}).appendTo('#photos'); data.submit(); }, done: function (e, data) { data.context.text('Upload finished.'); location.reload(); } }); }); 

image_upload.html.erb

  
'btn btn-success' %>

Loading

:delete, :class => 'btn' %>

从关于回调的jquery fileuploader文档中 ,您可以绑定将在上载完成后触发的success事件。

 jqXHR = data.submit() .success(function() { window.location.reload() }) 

只需从Done部分删除location.reload并检查图像是否加载$("#image")然后点击window.location.reload

我想你可以尝试在你的javascript函数中使用Ajax。 下载完成后,然后触发ajax调用到控制器/方法,您的方法将自动再次将页面渲染回视图。 您回调控制器的原因可能会帮助您将所有即时变量扩展到您的视图。

 $.ajax({ url: 'controller/method', type: 'post', data: 'YOUR DATA or Nothing', success: function(data) {} }); 

如果您不需要成功function,那么您只需使用url并发布。 尝试一下,你就能搞清楚。