Railsのインデックスビューでは、多かれ少なかれこのRailscastに従って、ajaxページ付けを実装しています。
ユーザーがページ付けリンクをクリックしたときに、次の手順を実行する必要があります。
- 既存のインデックスはフェードアウトします。
- スピナーが表示されます。
- 新しいインデックスコンテンツはフェードインします。
index.js.erbには、次のコンテンツがあります。
$(".ajaxable-content").fadeOut('fast');
$(".ajaxable-content").html('<div class="ajax-spinner></div>');
$(".ajaxable-content").delay(400);
$(".ajaxable-content").html('<%= escape_javascript(render :partial => "my/ajax/content" %>');
$(".ajaxable-content").fadeIn('slow');
機能にもかかわらず、delay
私が見ているのは次のとおりです。
- 新しいコンテンツがレンダリングされます。
- コンテンツがフェードアウトします。
- コンテンツがフェードインします。
これはあまり良いユーザーエクスペリエンスではありません!
(さらに、スピナーが表示されていないようです。または、交換が早すぎて目立たない可能性があります)。
新しいコンテンツがレンダリングされる前にフェードアウトが完了するようにする正しい方法は何ですか?
フェージングとスピナーが発生している間にデータベースへの要求がバックグラウンドで発生するようにこれを設定するための最良の方法は何ですか?