     done = () =>
       return  if done.called
       done.called = true
-      @_updateBattle.call(this, battle, wasAtBottom)
+      if view.skip?
+        @_updateBattle.call(this, battle, wasAtBottom)
+      else
+        # setTimeout 0 lets the browser breathe.
+        setTimeout(@_updateBattle.bind(this, battle, wasAtBottom), 0)
 
     try
       switch type

    queue = @updateQueue[battle.id]
    if queue.length == 0
      view.renderUserInfo()
      if wasAtBottom || view.skip? then view.chatView.scrollToBottom()
      if view.skip?
        delete view.skip

      throw e  if document.domain == 'localhost'
      console.error(e)
      done()
    if wasAtBottom && !view.chatView.isAtBottom()
      view.chatView.scrollToBottom()

