Ruby on rails Ajax、Rails和UI的最佳实践
我有一个使用Ajax的基本Rails应用程序(我遵循了这个很棒的方法) 在创建新记录时,它使用:remote=>true执行ajax调用,因此流程为: 用户单击提交>Ajax调用>创建新记录>使用新记录更新UI 这一切都很好,但是在用户点击提交和添加记录之间有一个(非常)小的等待。只有当很多用户点击它时,才会注意到。我想做的是: 用户单击提交>使用新记录更新UI(使用throbber)>Ajax调用>创建新记录>成功删除throbber 因此,对于用户来说,提交是即时的,无需等待,即使记录仍在后端创建Ruby on rails Ajax、Rails和UI的最佳实践,ruby-on-rails,ajax,jquery,Ruby On Rails,Ajax,Jquery,我有一个使用Ajax的基本Rails应用程序(我遵循了这个很棒的方法) 在创建新记录时,它使用:remote=>true执行ajax调用,因此流程为: 用户单击提交>Ajax调用>创建新记录>使用新记录更新UI 这一切都很好,但是在用户点击提交和添加记录之间有一个(非常)小的等待。只有当很多用户点击它时,才会注意到。我想做的是: 用户单击提交>使用新记录更新UI(使用throbber)>Ajax调用>创建新记录>成功删除throbber 因此,对于用户来说,提交是即时的,无需等待,即使记录仍在后
我想知道在Rails中是否有这样做的最佳实践?或者仅仅是编写一些自定义javascript来处理它的问题?您正在做的是最好的事情,但是您不应该立即在UI中创建记录,而是应该显示throbber,直到您从服务器获得成功创建对象的响应为止。如果存在任何验证错误,您还应该处理这些错误,并将其显示在客户端上。当您使用
时:remote=>true
rails使用jquery\u ujs
提交ajax请求。UJS库提供回调,以便在不同点上钩住自定义代码
你需要的是这样的东西:
$('form.new_record').on('ajax:beforeSend', function(event, xhr, settings) {
// Show throbber
return true;
});
有关更多详细信息,请参阅此链接: