reactjs / react-php-v8js

PHP library that renders React components on the server
Other
1.33k stars 127 forks source link

Fix to address a performance-related issue wherein the Javascript init bundle is executed each time getMarkup() is called #7

Closed jbroadice closed 9 years ago

jbroadice commented 9 years ago

The fix addresses an issue where the concatenated Javascript initialisation code is executed each time ReactJS::getMarkup() is called. I cannot see a good reason why this should be the case, and my thinking is that the concatenated code bundle should be executed once only - when ReactJS is instantiated.

This way, ReactJS::getMarkup() is only responsible for executing the JS React.renderToString() method, rather than executing the whole initialisation bundle first, and then calling .renderToString() - which seems to be incredibly costly and slow!

This change dramatically speeds up things for me on pages with multiple separate calls to render React components.

zpao commented 9 years ago

I think this makes sense and is pretty similar to what we do in react-rails. Let's do it.

jbroadice commented 9 years ago

Thanks! :+1: