 
 
   fetchPreview: =>
-    return if $(@previewButton).hasClass('active')
-
-    if $(@previewButton).attr('data-should-refresh') == '0'
+    $button = $(@previewButton)
+    url = $button.attr 'data-preview-url'
+
+    $input = $(@input)
+    body = $input.val()
+
+    $preview = $(@previewBox)
+
+    return if $button.hasClass('active')
+
+    if @lastBody == body
       @showPreview()
       return
 
     $.ajax
-      url: $(@previewButton).attr('data-preview-url')
+      url: url
       method: 'POST'
       data:
-        body: $(@input).val()
+        body: body
 
     .done (data) =>
-      $(@previewBox).html(data)
-
-      $(@previewButton).attr('data-should-refresh', '0')
-      $(@input).one 'input', @invalidatePreview
-
+      @lastBody = body
+
+      $preview.html(data)
       @showPreview()
 
 

    @editBox = document.getElementsByClassName('js-forum-reply-write')
    @previewBox = document.getElementsByClassName('js-forum-reply-preview')

    $(document).on 'ajax:success', '.js-forum-topic-reply', @posted

    $(document).on 'click', '.js-forum-reply-preview--show', @fetchPreview


    $(@previewButton).removeClass('active')
    $(@writeButton).addClass('active')


  posted: (e, data) =>
