ページの読み込み速度を上げるために、AJAX を介して作成コメントを実装しました。シンプルで重くありません。コントローラーアクションには次のものがあります。
def create
@comment = @commentable.comments.new(params_comment)
respond_to do |format|
if @comment.save
flash.now[:notice] = "Your comment added."
@response = {comment: @comment, model: @commentable}
format.js { @response }
format.html { redirect_to @commentable }
else
format.js { render nothing: :true, status: :not_acceptable }
format.html { redirect_to @commentable, status: :not_acceptable }
end
end
end
および js ファイル:
$("<%= escape_javascript( render 'comments/comment', @response)%>").appendTo(".comments").hide().fadeIn(500)
$('.notice-wrapper').html("<%= j(render partial: 'shared/notice') %>")
$('.alert').fadeOut(3000)
if $(".no-comments").css("display") is 'block'
$(".no-comments").hide()
$(".new_answer").hide()
$(".open").show()
しかし、パフォーマンスを高速化する代わりに、逆の効果がありました。JavaScript による応答時間は 100 ~ 200 ミリ秒 (合計で 300 ミリ秒以下) 増加しました。これは正常な動作ですか、それとも何か間違ったことをしていますか? 速度を少し改善する方法はありますか?
私のパフォーマンステスト:
UPD: JS ファイルのみを使用したパフォーマンス テスト。