Skip to content
This repository was archived by the owner on Jul 19, 2019. It is now read-only.

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

Merged
merged 2 commits into from
May 26, 2015

Conversation

jbroadice
Copy link
Contributor

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.

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 vendor bundle first, and then calling
.renderToString() - which is incredibly costly and slow!
@jbroadice jbroadice changed the title This fix addresses a performance-related issue where... Fix to address a performance-related issue where the vendor bundle is executed each time getMarkup() is called May 25, 2015
@jbroadice jbroadice changed the title Fix to address a performance-related issue where the vendor bundle is executed each time getMarkup() is called Fix to address a performance-related issue wherein the vendor bundle is executed each time getMarkup() is called May 25, 2015
@jbroadice jbroadice changed the title Fix to address a performance-related issue wherein the vendor bundle is executed each time getMarkup() is called Fix to address a performance-related issue wherein the Javascript vendor bundle is executed each time getMarkup() is called May 25, 2015
@jbroadice jbroadice changed the title Fix to address a performance-related issue wherein the Javascript vendor bundle is executed each time getMarkup() is called Fix to address a performance-related issue wherein the Javascript init bundle is executed each time getMarkup() is called May 25, 2015
@zpao
Copy link
Member

zpao commented May 26, 2015

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

zpao added a commit that referenced this pull request May 26, 2015
Fix to address a performance-related issue wherein the Javascript init bundle is executed each time getMarkup() is called
@zpao zpao merged commit 6bfbf16 into reactjs:master May 26, 2015
@jbroadice
Copy link
Contributor Author

Thanks! 👍

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants