     @documentReaders = []
     @documentWriters = []
     @documentPollers = []
-    @documentUpdateRequested = false
+    if @animationFrameRequest?
+      cancelAnimationFrame(@animationFrameRequest)
+      @animationFrameRequest = null
     @stopPollingDocument()
 
   requestDocumentUpdate: ->
-    unless @documentUpdateRequested
-      @documentUpdateRequested = true
-      requestAnimationFrame(@performDocumentUpdate)
+    @animationFrameRequest ?= requestAnimationFrame(@performDocumentUpdate)
 
   performDocumentUpdate: =>
-    @documentUpdateRequested = false
+    @animationFrameRequest = null
     writer() while writer = @documentWriters.shift()
 
     @documentReadInProgress = true

# ```
module.exports =
class ViewRegistry
  documentUpdateRequested: false
  documentReadInProgress: false
  performDocumentPollAfterUpdate: false
  debouncedPerformDocumentPoll: null

    @observer.disconnect()

  requestDocumentPoll: =>
    if @animationFrameRequest?
      @performDocumentPollAfterUpdate = true
    else
      @debouncedPerformDocumentPoll()
