storybookjs / storybook

Storybook is the industry standard workshop for building, documenting, and testing UI components in isolation
https://storybook.js.org
MIT License
84.62k stars 9.31k forks source link

Upgrading to v6 has caused performance issues with large inline Base 64 encoded images #12040

Open SimonS opened 4 years ago

SimonS commented 4 years ago

Describe the bug We were including our images inline in Javascript, and up to the most recent version of Storybook, they were working with no issues whatsoever. They are large-ish (one was 21k and the other 82k - expanding up to 28k and 111k in JS), but we've never had any issues.

When used in Firefox, they fail completely with the error "too much recursion", whereas Chrome struggles but eventually shows them.

To Reproduce I've attached an example asset looks like this (my goodness, I hope it collapses or scrolls 😬):

const placeholderImage = {
  __typename: 'ComponentsImage',
  src:
    'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAHCCAYAAAAXY63IAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAsTAAALEwEAmpwYAAABWWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgpMwidZAABAAElEQVR4Ae3diXbbuIItUFXsxHNsx+n7/1/S739ev75jzZWqPBxEcBTHgyyRFIfNtRxHssRhgxJwOAA//J///u/PKxMBAgQIECBAgAABAgQGEHgzwDIsggABAgQIECBAgAABAlVAALEjECBAgAABAgQIECAwmIAAMhi1BREgQIAAAQIECBAgIIDYBwgQIECAAAECBAgQGExAABmM2oIIECBAgAABAgQIEBBA7AMECBAgQIAAAQIECAwmIIAMRm1BBAgQIECAAAECBAgIIPYBAgQIECBAgAABAgQGExBABqO2IAIECBAgQIAAAQIEBBD7AAECBAgQIECAAAECgwkIIINRWxABAgQIECBAgAABAgKIfYAAAQIECBAgQIAAgcEEBJDBqC2IAAECBAgQIECAAAEBxD5AgAABAgQIECBAgMBgAgLIYNQWRIAAAQIECBAgQICAAGIfIECAAAECBAgQIEBgMAEBZDBqCyJAgAABAgQIECBAQACxDxAgQIAAAQIECBAgMJiAADIYtQURIECAAAECBAgQICCA2AcIECBAgAABAgQIEBhMQAAZjNqCCBAgQIAAAQIECBAQQOwDBAgQIECAAAECBAgMJiCADEZtQQQIECBAgAABAgQICCD2AQIECBAgQIAAAQIEBhMQQAajtiACBAgQIECAAAECBAQQ+wABAgQIECBAgAABAoMJCCCDUVsQAQIECBAgQIAAAQICiH2AAAECBAgQIECAAIHBBASQwagtiAABAgQIECBAgAABAcQ+QIAAAQIECBAgQIDAYAICyGDUFkSAAAECBAgQIECAgABiHyBAgAABAgQIECBAYDABAWQwagsiQIAAAQIECBAgQEAAsQ8QIECAAAECBAgQIDCYgAAyGLUFESBAgAABAgQIECAggNgHCBAgQIAAAQIECBAYTEAAGYzagggQIECAAAECBAgQEEDsAwQIECBAgAABAgQIDCYggAxGbUEECBAgQIAAAQIECAgg9gECBAgQIECAAAECBAYTEEAGo7YgAgQIECBAgAABAgQEEPsAAQIECBAgQIAAAQKDCQggg1FbEAECBAgQIECAAAECAoh9gAABAgQIECBAgACBwQQEkMGoLYgAAQIECBAgQIAAAQHEPkCAAAECBAgQIECAwGACAshg1BZEgAABAgQIECBAgIAAYh8gQIAAAQIECBAgQGAwAQFkMGoLIkCAAAECBAgQIEBAALEPECBAgAABAgQIECAwmIAAMhi1BREgQIAAAQIECBAgIIDYBwgQIECAAAECBAgQGExAABmM2oIIECBAgAABAgQIEBBA7AMECBAgQIAAAQIECAwmIIAMRm1BBAgQIECAAAECBAgIIPYBAgQIECBAgAABAgQGExBABqO2IAIECBAgQIAAAQIEBBD7AAECBAgQIECAAAECgwkIIINRWxABAgQIECBAgAABAgKIfYAAAQIECBAgQIAAgcEEBJDBqC2IAAECBAgQIECAAAEBxD5AgAABAgQIECBAgMBgAgLIYNQWRIAAAQIECBAgQICAAGIfIECAAAECBAgQIEBgMAEBZDBqCyJAgAABAgQIECBAQACxDxAgQIAAAQIECBAgMJiAADIYtQURIECAAAECBAgQICCA2AcIECBAgAABAgQIEBhMQAAZjNqCCBAgQIAAAQIECBAQQOwDBAgQIECAAAECBAgMJiCADEZtQQQIECBAgAABAgQICCD2AQIECBAgQIAAAQIEBhMQQAajtiACBAgQIECAAAECBAQQ+wABAgQIECBAgAABAoMJCCCDUVsQAQIECBAgQIAAAQICiH2AAAECBAgQIECAAIHBBASQwagtiAABAgQIECBAgAABAcQ+QIAAAQIECBAgQIDAYAICyGDUFkSAAAECBAgQIECAgABiHyBAgAABAgQIECBAYDABAWQwagsiQIAAAQIECBAgQEAAsQ8QIECAAAECBAgQIDCYgAAyGLUFESBAgAABAgQIECAggNgHCBAgQIAAAQIECBAYTEAAGYzagggQIECAAAECBAgQEEDsAwQIECBAgAABAgQIDCYggAxGbUEECBAgQIAAAQIECAgg9gECBAgQIECAAAECBAYTEEAGo7YgAgQIECBAgAABAgQEEPsAAQIECBAgQIAAAQKDCQggg1FbEAECBAgQIECAAAECAoh9gAABAgQIECBAgACBwQQEkMGoLYgAAQIECBAgQIAAAQHEPkCAAAECBAgQIECAwGACAshg1BZEgAABAgQIECBAgIAAYh8gQIAAAQIECBAgQGAwAQFkMGoLIkCAAAECBAgQIEBAALEPECBAgAABAgQIECAwmIAAMhi1BREgQIAAAQIECBAgIIDYBwgQIECAAAECBAgQGExAABmM2oIIECBAgAABAgQIEBBA7AMECBAgQIAAAQIECAwmIIAMRm1BBAgQIECAAAECBAgIIPYBAgQIECBAgAABAgQGExBABqO2IAIECBAgQIAAAQIEBBD7AAECBAgQIECAAAECgwkIIINRWxABAgQIECBAgAABAgKIfYAAAQIECBAgQIAAgcEEBJDBqC2IAAECBAgQIECAAAEBxD5AgAABAgQIECBAgMBgAgLIYNQWRIAAAQIECBAgQICAAGIfIECAAAECBAgQIEBgMAEBZDBqCyJAgAABAgQIECBAQACxDxAgQIAAAQIECBAgMJiAADIYtQURIECAAAECBAgQICCA2AcIECBAgAABAgQIEBhMQAAZjNqCCBAgQIAAAQIECBAQQOwDBAgQIECAAAECBAgMJiCADEZtQQQIECBAgAABAgQICCD2AQIECBAgQIAAAQIEBhMQQAajtiACBAgQIECAAAECBAQQ+wABAgQIECBAgAABAoMJCCCDUVsQAQIECBAgQIAAAQLHCAh8/vz5WYQffvjh2b/7IwECBAgQIECAAIFtBQSQbaWm/rqEiBI0EjZa4Eis+OHNm9Wb9U+CRgsb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',
  alt: 'BBC GEL Placeholder Image'
};

export default placeholderImage;

de-inlining it and including it like so fixes the issue:

import placeholderFile from './placeholder-image.png';

const placeholderImage = {
  __typename: 'ComponentsImage',
  src: placeholderFile,
  alt: 'BBC GEL Placeholder Image'
};

export default placeholderImage;

Expected behavior Honestly, I'm not surprised that 111kb of inlined image has caused issues here - but <v6 we've never experienced any issues. I'm only logging this in case it's an unintended consequence of something somewhere else, and it might be useful to someone else who is experiencing performance issues on upgrade to 6.

Screenshots Here's Firefox giving up:

Screenshot 2020-08-07 at 21 13 22

Code snippets If applicable, add code samples to help explain your problem.

System: Please paste the results of npx sb@next info here.

Environment Info:

System: OS: macOS Mojave 10.14.6 CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz Binaries: Node: 12.14.0 - ~/.fnm/current/bin/node Yarn: 1.22.4 - /usr/local/bin/yarn npm: 6.13.4 - ~/.fnm/current/bin/npm Browsers: Chrome: 84.0.4147.125 Firefox: 79.0 Safari: 13.0.3

Cheers!

shilman commented 4 years ago

Looks like a bug. As a temp workaround try setting the docs source to code globally in .storybook/preview.js:

export const parameters = { docs: { source: { type: 'code' } } };
stale[bot] commented 4 years ago

Hi everyone! Seems like there hasn't been much going on in this issue lately. If there are still questions, comments, or bugs, please feel free to continue the discussion. Unfortunately, we don't have time to get to every issue. We are always open to contributions so please send us a pull request if you would like to help. Inactive issues will be closed after 30 days. Thanks!

Fasani commented 3 years ago

I have the same issue.

Can confirm the workaround above fixes the issue.

Does anyone have any insight into what this line of code is doing to my project to make it magically work again?

Fasani commented 3 years ago

Actually to expand further, I have a slightly different issue. Maybe this helps some one to debug.

I have stories which load images in React components. To remove the need for a BE I use mock JSON data with a Base64 string instead of a file URL.

Psuedo code below:

export const servicesData = {
    id: 2,
    templateBlockId: 'template-services',
    settings: {
        visible: true,
        image: 'data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAg...'
    },
    textContent: [...],
}
import { servicesData } from '../../data/service-data.mock';

export function ServicesBlock() {
    return (
        <Services data={servicesData} />
    );
}

Something like that, anyway it also worked for me until recently with no issues.

I use NX "@nrwl/storybook" "12.5.8" looking at my yarn.lock it looks like I have "@storybook/core" "6.3.6".

I have different size Base64 strings, some images are just 30kb and some are up to 200kb. It slows less on the smaller ones eventually the block will load but it can make the browser hang and take 30 seconds to load. After adding the fix above it reverts back to normal how it used to be.