提供“进行中”...“完成”通知的最简单方法?

时间:2011-05-31 22:36:34

标签: javascript jquery ruby-on-rails ajax

我不是编程新手,但在Javascript / web开发中有点生疏。我正在使用Rails构建应用程序,我们有几个耗时的操作,在此期间我们希望向用户提供反馈。基本上,我想使用AJAX做这样的事情:

  1. [用户点击'确定'或'继续']
  2. [可选确认框]
  3. 在操作发生时显示状态消息“工作...”
  4. 当操作完成并从服务器返回数据时,状态消息将更改为“完成!”然后呈现结果或发生一些回调。
  5. 我做网络开发已经有一段时间了,一个如何实现这样的事情的简单例子会非常有帮助。谢谢。

3 个答案:

答案 0 :(得分:5)

$(window).ajaxStart(function() {
    $("#loader").show();
}).ajaxStop(function() {
    $("#loader").hide();
});

全局绑定到开始和停止。此示例显示并隐藏了一个装载器div。通常你有一个带有微调器的div,让用户知道它正在加载。

旋转器的消失应该足够了,完成"消息太过分了。

答案 1 :(得分:0)

$.ajax({
   type: "POST",
   url: "some.php",
   data: "name=John&location=Boston",
   beforeSend(jqXHR, settings) {
      $(body).append('<div id="overlayStatus">Working...</div>');
   },
   complete(jqXHR, textStatus) {
      $('#overlayStatus').html("Ajax call completed: " + textStatus);
      setTimeout(function(){
         $('#overlayStatus').hide();
      }, 1000);
   }
});

答案 2 :(得分:0)

您是在烘焙自己的AJAX框架,还是在rails中使用内置的AJAX框架?如果是后者,请查看 linkt_to的选项(特别是:更新一个) http://edgeguides.rubyonrails.org/ajax_on_rails.html