React non-blocking rendering of big chunks of dataJavascript ajax Lazy Loading and functions organizationDynamically Rendering a React componentReact “after render” code?Best practice when not needed to render the componentReact onClick function fires on renderNon blocking render in ReactJSRxJS: Chunk a big array using timed interval and use it for renderingReact / Webpack / Express Issues when rendering server sideReact js show modal dialog when during componentDidMount()Table Editing React without Rendering
How do I deal with an unproductive colleague in a small company?
What are these boxed doors outside store fronts in New York?
Did Shadowfax go to Valinor?
Which country benefited the most from UN Security Council vetoes?
Was any UN Security Council vote triple-vetoed?
Replacing matching entries in one column of a file by another column from a different file
Modeling an IP Address
Fully-Firstable Anagram Sets
How is the claim "I am in New York only if I am in America" the same as "If I am in New York, then I am in America?
Theorems that impeded progress
Languages that we cannot (dis)prove to be Context-Free
Paid for article while in US on F-1 visa?
How to determine what difficulty is right for the game?
Does detail obscure or enhance action?
Character reincarnated...as a snail
LWC SFDX source push error TypeError: LWC1009: decl.moveTo is not a function
How can I prevent hyper evolved versions of regular creatures from wiping out their cousins?
Intersection point of 2 lines defined by 2 points each
Could an aircraft fly or hover using only jets of compressed air?
Approximately how much travel time was saved by the opening of the Suez Canal in 1869?
Is it tax fraud for an individual to declare non-taxable revenue as taxable income? (US tax laws)
Is it unprofessional to ask if a job posting on GlassDoor is real?
I'm flying to France today and my passport expires in less than 2 months
Why doesn't H₄O²⁺ exist?
React non-blocking rendering of big chunks of data
Javascript ajax Lazy Loading and functions organizationDynamically Rendering a React componentReact “after render” code?Best practice when not needed to render the componentReact onClick function fires on renderNon blocking render in ReactJSRxJS: Chunk a big array using timed interval and use it for renderingReact / Webpack / Express Issues when rendering server sideReact js show modal dialog when during componentDidMount()Table Editing React without Rendering
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
Recently I started to learn to react and wondering, is there some kind of pattern for non-blocking UI thread rendering for big data. Let's say, we take this example:
, click create a lot of items, set number for, let's say 10000, we will get frozen UI for almost 10 seconds. It updates smoothly with observables, once it is done rendering, I get that, but is there a way to render it smoothly, in chunks?
Usually, you set up some kind of array, slice it by, let's say 50, process those and setTimeout for 0 to slice another 50 and so on. Repeat til array's length is 0. Is there a pattern for react components for doing that? Maybe some plugin or until mixin?
javascript performance reactjs
add a comment |
Recently I started to learn to react and wondering, is there some kind of pattern for non-blocking UI thread rendering for big data. Let's say, we take this example:
, click create a lot of items, set number for, let's say 10000, we will get frozen UI for almost 10 seconds. It updates smoothly with observables, once it is done rendering, I get that, but is there a way to render it smoothly, in chunks?
Usually, you set up some kind of array, slice it by, let's say 50, process those and setTimeout for 0 to slice another 50 and so on. Repeat til array's length is 0. Is there a pattern for react components for doing that? Maybe some plugin or until mixin?
javascript performance reactjs
add a comment |
Recently I started to learn to react and wondering, is there some kind of pattern for non-blocking UI thread rendering for big data. Let's say, we take this example:
, click create a lot of items, set number for, let's say 10000, we will get frozen UI for almost 10 seconds. It updates smoothly with observables, once it is done rendering, I get that, but is there a way to render it smoothly, in chunks?
Usually, you set up some kind of array, slice it by, let's say 50, process those and setTimeout for 0 to slice another 50 and so on. Repeat til array's length is 0. Is there a pattern for react components for doing that? Maybe some plugin or until mixin?
javascript performance reactjs
Recently I started to learn to react and wondering, is there some kind of pattern for non-blocking UI thread rendering for big data. Let's say, we take this example:
, click create a lot of items, set number for, let's say 10000, we will get frozen UI for almost 10 seconds. It updates smoothly with observables, once it is done rendering, I get that, but is there a way to render it smoothly, in chunks?
Usually, you set up some kind of array, slice it by, let's say 50, process those and setTimeout for 0 to slice another 50 and so on. Repeat til array's length is 0. Is there a pattern for react components for doing that? Maybe some plugin or until mixin?
javascript performance reactjs
javascript performance reactjs
edited Dec 28 '18 at 7:07
the_ultimate_developer
1,045823
1,045823
asked Feb 4 '16 at 6:20
user1929437user1929437
7917
7917
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
For a similar problem, I chunked my data and then serialized the processing with reduce
and promises:
chunks.reduce( (previousPromise, nextChunk) =>
return previousPromise.then(processChunkAndUpdateComponentStateAsPromise(nextChunk));
, Promise.resolve());
add a comment |
For lists as large as 10,000 items I would recommend using a virtualized list. A popular implementation of this for React is react-virtualized: http://bvaughn.github.io/react-virtualized/#/components/List.
The reason for this is that a virtualized list will only render what is visible, so it will be fast even if you have a lot of data to display. You could also split your initial render into batches, but if you do this you are likely to run into other performance issues (due to too much DOM, too many observables, etc).
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f35193867%2freact-non-blocking-rendering-of-big-chunks-of-data%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
For a similar problem, I chunked my data and then serialized the processing with reduce
and promises:
chunks.reduce( (previousPromise, nextChunk) =>
return previousPromise.then(processChunkAndUpdateComponentStateAsPromise(nextChunk));
, Promise.resolve());
add a comment |
For a similar problem, I chunked my data and then serialized the processing with reduce
and promises:
chunks.reduce( (previousPromise, nextChunk) =>
return previousPromise.then(processChunkAndUpdateComponentStateAsPromise(nextChunk));
, Promise.resolve());
add a comment |
For a similar problem, I chunked my data and then serialized the processing with reduce
and promises:
chunks.reduce( (previousPromise, nextChunk) =>
return previousPromise.then(processChunkAndUpdateComponentStateAsPromise(nextChunk));
, Promise.resolve());
For a similar problem, I chunked my data and then serialized the processing with reduce
and promises:
chunks.reduce( (previousPromise, nextChunk) =>
return previousPromise.then(processChunkAndUpdateComponentStateAsPromise(nextChunk));
, Promise.resolve());
answered Mar 9 at 1:30
MarkusMarkus
1,21311230
1,21311230
add a comment |
add a comment |
For lists as large as 10,000 items I would recommend using a virtualized list. A popular implementation of this for React is react-virtualized: http://bvaughn.github.io/react-virtualized/#/components/List.
The reason for this is that a virtualized list will only render what is visible, so it will be fast even if you have a lot of data to display. You could also split your initial render into batches, but if you do this you are likely to run into other performance issues (due to too much DOM, too many observables, etc).
add a comment |
For lists as large as 10,000 items I would recommend using a virtualized list. A popular implementation of this for React is react-virtualized: http://bvaughn.github.io/react-virtualized/#/components/List.
The reason for this is that a virtualized list will only render what is visible, so it will be fast even if you have a lot of data to display. You could also split your initial render into batches, but if you do this you are likely to run into other performance issues (due to too much DOM, too many observables, etc).
add a comment |
For lists as large as 10,000 items I would recommend using a virtualized list. A popular implementation of this for React is react-virtualized: http://bvaughn.github.io/react-virtualized/#/components/List.
The reason for this is that a virtualized list will only render what is visible, so it will be fast even if you have a lot of data to display. You could also split your initial render into batches, but if you do this you are likely to run into other performance issues (due to too much DOM, too many observables, etc).
For lists as large as 10,000 items I would recommend using a virtualized list. A popular implementation of this for React is react-virtualized: http://bvaughn.github.io/react-virtualized/#/components/List.
The reason for this is that a virtualized list will only render what is visible, so it will be fast even if you have a lot of data to display. You could also split your initial render into batches, but if you do this you are likely to run into other performance issues (due to too much DOM, too many observables, etc).
answered Mar 12 at 21:06
JoruJoru
3,42311513
3,42311513
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f35193867%2freact-non-blocking-rendering-of-big-chunks-of-data%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown