Class: ReactOnRailsPro::ServerRenderingPool::ProRendering
- Inherits:
-
Object
- Object
- ReactOnRailsPro::ServerRenderingPool::ProRendering
- Defined in:
- lib/react_on_rails_pro/server_rendering_pool/pro_rendering.rb
Constant Summary collapse
- RENDERED_HTML_KEY =
"renderedHtml"
Class Method Summary collapse
- .exec_server_render_js(js_code, render_options) ⇒ Object
- .pool ⇒ Object
-
.set_request_digest_on_render_options(js_code, render_options) ⇒ Object
See github.com/shakacode/react_on_rails_pro/issues/119 for why the digest is on the render options.
Class Method Details
.exec_server_render_js(js_code, render_options) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/react_on_rails_pro/server_rendering_pool/pro_rendering.rb', line 19 def exec_server_render_js(js_code, ) ::ReactOnRailsPro::Utils.with_trace(.react_component_name) do # See https://github.com/shakacode/react_on_rails_pro/issues/119 for why # the digest is on the render options. # TODO: the request digest should be removed unless prerender caching is used (js_code, ) # Cache non-streaming immediately. For streaming, optionally cache via write-through. if cache_enabled_for?() render_with_cache(js_code, ) else render_on_pool(js_code, ) end end end |
.pool ⇒ Object
9 10 11 12 13 14 15 |
# File 'lib/react_on_rails_pro/server_rendering_pool/pro_rendering.rb', line 9 def pool @pool ||= if ReactOnRailsPro.configuration.node_renderer? ::ReactOnRailsPro::ServerRenderingPool::NodeRenderingPool else ::ReactOnRails::ServerRenderingPool::RubyEmbeddedJavaScript end end |
.set_request_digest_on_render_options(js_code, render_options) ⇒ Object
See github.com/shakacode/react_on_rails_pro/issues/119 for why the digest is on the render options.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/react_on_rails_pro/server_rendering_pool/pro_rendering.rb', line 37 def (js_code, ) return unless .request_digest.blank? digest = if .random_dom_id? Rails.logger.info do "[ReactOnRailsPro] Rendering #{.react_component_name}. " \ "Suggest setting `id` on react_component or setting react_on_rails.rb initializer " \ "config.random_dom_id to false for BETTER performance." end Digest::MD5.hexdigest(without_random_values(js_code)) else Digest::MD5.hexdigest(js_code) end .request_digest = digest end |