 
   request_render : () ->
     if not @is_paused
-      @throttled()
+      @throttled_render()
     return
 
+  request_render_canvas : () ->
+    if not @is_paused
+      @throttled_render_canvas()
+    return
+
   initialize: (options) ->
-    @throttled = _.throttle(@render_deferred_components, 50)
+    @throttled_render = _.throttle(@render, 50)
+    @throttled_render_canvas = _.throttle(@render_canvas, 30)
 
     super(_.defaults(options, @default_options))
 


    @build_tools()
    @bind_tools()

  bind_bokeh_events: () ->
    safebind(this, @view_state, 'change', @render)
    safebind(this, @x_range, 'change', @request_render)
    safebind(this, @y_range, 'change', @request_render)
    safebind(this, @model, 'change:renderers', @build_views)

    @ctx.clip()
    @ctx.beginPath()

    for level in [@images, @underlays, @glyphs]
      for k, v of level
        v.render()

    @ctx.restore()

    for level in [@overlays, @annotations]
      for k, v of @overlays
        v.render()

class Plot extends HasParent
  type: 'Plot'
