     updateCountdown: ->
       {countdown, states} = @state
       for i in [0..3]
-        if countdown[i] > 0
-          countdown[i] -= 1
-          if countdown[i] is 0 and states[i] < 4
+        if countdown[i] - timeDelta[i] > 0
+          timeDelta[i] += 1
+          # Use DOM operation instead of React for performance
+          $("#ShipView #deck-condition-countdown-#{i}").innerHTML = resolveTime(countdown[i] - timeDelta[i])
+          if countdown[i] == timeDelta[i] and states[i] < 4
             notify "#{@state.names[i]} 疲劳回复完成", {icon: join(ROOT, 'assets', 'img', 'operation', 'sortie.png')}
-      @setState
-        countdown: countdown
     componentDidMount: ->
       window.addEventListener 'game.response', @handleResponse
       setInterval @updateCountdown, 1000

{Button, ButtonGroup, Table, ProgressBar, OverlayTrigger, Tooltip, Grid, Col, Alert} = ReactBootstrap
{Slotitems} = require './parts'
inBattle = [false, false, false, false]
getStyle = (state) ->
  if state in [0..5]
    # 0: Cond >= 40, Supplied, Repaired, In port

                    </OverlayTrigger>
                  </Col>
                  <Col xs={4}>
                    回复：<span id={"deck-condition-countdown-#{i}"}>{resolveTime @state.countdown[i]}</span>
                  </Col>
                </Grid>
              </Alert>
