Ajax,Rails和UI的最佳实践

时间:2013-09-12 06:15:39

标签: ruby-on-rails ajax jquery

我有一个使用Ajax的基本Rails应用程序(我遵循了这个伟大的Railscast tutorial

在创建新记录时,它会执行ajax调用,使用:remote =>是的,所以流程是:

用户点击提交> Ajax调用>创建新记录>使用新记录更新了用户界面

这一切都运行正常,但是用户点击提交和添加的记录之间存在(非常)小的等待。只有很多用户在点击它时才会注意到。我更喜欢做的是:

用户点击提交>使用新记录更新UI(使用throbber)> Ajax调用>创建新记录>成功取消了悸动

因此,对于用户来说,提交是即时的,无需等待,即使后端仍在创建记录。

我想知道在Rails中有这样做的最佳实践吗?或者只是编写一些自定义的JavaScript来处理它?<​​/ p>

2 个答案:

答案 0 :(得分:1)

当您使用:remote => true rails使用jquery_ujs提交ajax请求时。 UJS库提供回调以在各个点挂钩自定义代码。

你需要的是这样的东西:

$('form.new_record').on('ajax:beforeSend', function(event, xhr, settings) {
    // Show throbber
    return true;
});

有关详细信息,请参阅此链接:https://github.com/rails/jquery-ujs/wiki/ajax

答案 1 :(得分:0)

你正在做的是最好的事情,但不是立即在UI中创建记录,你应该显示throbber,直到你从服务器得到对象已成功创建的响应。您还应该处理任何验证错误,如果有错误并在客户端上显示它。