diff --git a/src/browser/server/ReactMarkupChecksum.js b/src/browser/server/ReactMarkupChecksum.js index 2198c276805cb..4ea0aeafaef78 100644 --- a/src/browser/server/ReactMarkupChecksum.js +++ b/src/browser/server/ReactMarkupChecksum.js @@ -38,15 +38,20 @@ var ReactMarkupChecksum = { /** * @param {string} markup to use * @param {DOMElement} element root React element - * @returns {boolean} whether or not the markup is the same + * @returns {boolean} whether or not the markup was reusable */ - canReuseMarkup: function(markup, element) { + reuseMarkup: function(markup, element) { var existingChecksum = element.getAttribute( ReactMarkupChecksum.CHECKSUM_ATTR_NAME ); - existingChecksum = existingChecksum && parseInt(existingChecksum, 10); - var markupChecksum = adler32(markup); - return markupChecksum === existingChecksum; + if (existingChecksum) { + var markupChecksum = '' + adler32(markup); + if (markupChecksum === existingChecksum) { + element.removeAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME); + return true; + } + } + return false; } }; diff --git a/src/browser/ui/ReactComponentBrowserEnvironment.js b/src/browser/ui/ReactComponentBrowserEnvironment.js index a04bb79067170..f44802c048ff0 100644 --- a/src/browser/ui/ReactComponentBrowserEnvironment.js +++ b/src/browser/ui/ReactComponentBrowserEnvironment.js @@ -74,7 +74,7 @@ var ReactComponentBrowserEnvironment = { ); if (shouldReuseMarkup) { - if (ReactMarkupChecksum.canReuseMarkup( + if (ReactMarkupChecksum.reuseMarkup( markup, getReactRootElementInContainer(container))) { return;