Recursive table formulating function that waits for page to load before each step
I am trying to find out how to have all of these things in the same function:
- An array of objects where sections of it are generated through a time-consuming function
- The DOM loading before each attempt at loading the next section of array objects
I have tried Promise, recursive functions to my best ability, to no prevail.
Here is the code I am manipulating:
showLoader();
var preArray = new Array();
var subjects = scrapeSubjects();
function next(subject, prearray) {
if (subject.length) {
//Writes an element specifying the current section being loaded for the user on a loading page
writeToLoader(subject[0]);
$( document ).ready( function() { next(subject); });
prearray = prearray.concat(pullData(subject.shift()));
}
};
preArray = next(subjects, preArray);
var array = stripNonRooms(preArray, roomsArray);
localStorage.setItem('data', JSON.stringify(array));
//hides the loader when it is complete
var loader = document.getElementById("loader");
loader.style.display = "none";
Is there anything I can do to show the user the section that is currently being loaded, while it is being loaded?
javascript jquery arrays async-await
|
show 2 more comments
I am trying to find out how to have all of these things in the same function:
- An array of objects where sections of it are generated through a time-consuming function
- The DOM loading before each attempt at loading the next section of array objects
I have tried Promise, recursive functions to my best ability, to no prevail.
Here is the code I am manipulating:
showLoader();
var preArray = new Array();
var subjects = scrapeSubjects();
function next(subject, prearray) {
if (subject.length) {
//Writes an element specifying the current section being loaded for the user on a loading page
writeToLoader(subject[0]);
$( document ).ready( function() { next(subject); });
prearray = prearray.concat(pullData(subject.shift()));
}
};
preArray = next(subjects, preArray);
var array = stripNonRooms(preArray, roomsArray);
localStorage.setItem('data', JSON.stringify(array));
//hides the loader when it is complete
var loader = document.getElementById("loader");
loader.style.display = "none";
Is there anything I can do to show the user the section that is currently being loaded, while it is being loaded?
javascript jquery arrays async-await
Where are the promises in your code? Which part is actually asynchronous?
– Bergi
Nov 25 '18 at 12:13
@Bergi can I not just use some sort of wait function before continuing my code?
– tincopper2
Nov 27 '18 at 1:22
No, you will need to use a specific wait function, and if you want to wait for something it'll be asychronous. But what in your code snippet above do you want to wait for?
– Bergi
Nov 27 '18 at 8:00
@Bergi page ready, I have it specified, I only want to update a doc as I am running my code, so the user can see the div update as the code is running
– tincopper2
Nov 28 '18 at 14:25
The document does get ready only once. If you change something, that doesn't "un-ready" the page. If your problem is long-running code and the browser doesn't render your change soon enough, the only thing you can do is to make it asynchronous with a little timeout.
– Bergi
Nov 28 '18 at 14:40
|
show 2 more comments
I am trying to find out how to have all of these things in the same function:
- An array of objects where sections of it are generated through a time-consuming function
- The DOM loading before each attempt at loading the next section of array objects
I have tried Promise, recursive functions to my best ability, to no prevail.
Here is the code I am manipulating:
showLoader();
var preArray = new Array();
var subjects = scrapeSubjects();
function next(subject, prearray) {
if (subject.length) {
//Writes an element specifying the current section being loaded for the user on a loading page
writeToLoader(subject[0]);
$( document ).ready( function() { next(subject); });
prearray = prearray.concat(pullData(subject.shift()));
}
};
preArray = next(subjects, preArray);
var array = stripNonRooms(preArray, roomsArray);
localStorage.setItem('data', JSON.stringify(array));
//hides the loader when it is complete
var loader = document.getElementById("loader");
loader.style.display = "none";
Is there anything I can do to show the user the section that is currently being loaded, while it is being loaded?
javascript jquery arrays async-await
I am trying to find out how to have all of these things in the same function:
- An array of objects where sections of it are generated through a time-consuming function
- The DOM loading before each attempt at loading the next section of array objects
I have tried Promise, recursive functions to my best ability, to no prevail.
Here is the code I am manipulating:
showLoader();
var preArray = new Array();
var subjects = scrapeSubjects();
function next(subject, prearray) {
if (subject.length) {
//Writes an element specifying the current section being loaded for the user on a loading page
writeToLoader(subject[0]);
$( document ).ready( function() { next(subject); });
prearray = prearray.concat(pullData(subject.shift()));
}
};
preArray = next(subjects, preArray);
var array = stripNonRooms(preArray, roomsArray);
localStorage.setItem('data', JSON.stringify(array));
//hides the loader when it is complete
var loader = document.getElementById("loader");
loader.style.display = "none";
Is there anything I can do to show the user the section that is currently being loaded, while it is being loaded?
javascript jquery arrays async-await
javascript jquery arrays async-await
asked Nov 25 '18 at 7:24
tincopper2tincopper2
449
449
Where are the promises in your code? Which part is actually asynchronous?
– Bergi
Nov 25 '18 at 12:13
@Bergi can I not just use some sort of wait function before continuing my code?
– tincopper2
Nov 27 '18 at 1:22
No, you will need to use a specific wait function, and if you want to wait for something it'll be asychronous. But what in your code snippet above do you want to wait for?
– Bergi
Nov 27 '18 at 8:00
@Bergi page ready, I have it specified, I only want to update a doc as I am running my code, so the user can see the div update as the code is running
– tincopper2
Nov 28 '18 at 14:25
The document does get ready only once. If you change something, that doesn't "un-ready" the page. If your problem is long-running code and the browser doesn't render your change soon enough, the only thing you can do is to make it asynchronous with a little timeout.
– Bergi
Nov 28 '18 at 14:40
|
show 2 more comments
Where are the promises in your code? Which part is actually asynchronous?
– Bergi
Nov 25 '18 at 12:13
@Bergi can I not just use some sort of wait function before continuing my code?
– tincopper2
Nov 27 '18 at 1:22
No, you will need to use a specific wait function, and if you want to wait for something it'll be asychronous. But what in your code snippet above do you want to wait for?
– Bergi
Nov 27 '18 at 8:00
@Bergi page ready, I have it specified, I only want to update a doc as I am running my code, so the user can see the div update as the code is running
– tincopper2
Nov 28 '18 at 14:25
The document does get ready only once. If you change something, that doesn't "un-ready" the page. If your problem is long-running code and the browser doesn't render your change soon enough, the only thing you can do is to make it asynchronous with a little timeout.
– Bergi
Nov 28 '18 at 14:40
Where are the promises in your code? Which part is actually asynchronous?
– Bergi
Nov 25 '18 at 12:13
Where are the promises in your code? Which part is actually asynchronous?
– Bergi
Nov 25 '18 at 12:13
@Bergi can I not just use some sort of wait function before continuing my code?
– tincopper2
Nov 27 '18 at 1:22
@Bergi can I not just use some sort of wait function before continuing my code?
– tincopper2
Nov 27 '18 at 1:22
No, you will need to use a specific wait function, and if you want to wait for something it'll be asychronous. But what in your code snippet above do you want to wait for?
– Bergi
Nov 27 '18 at 8:00
No, you will need to use a specific wait function, and if you want to wait for something it'll be asychronous. But what in your code snippet above do you want to wait for?
– Bergi
Nov 27 '18 at 8:00
@Bergi page ready, I have it specified, I only want to update a doc as I am running my code, so the user can see the div update as the code is running
– tincopper2
Nov 28 '18 at 14:25
@Bergi page ready, I have it specified, I only want to update a doc as I am running my code, so the user can see the div update as the code is running
– tincopper2
Nov 28 '18 at 14:25
The document does get ready only once. If you change something, that doesn't "un-ready" the page. If your problem is long-running code and the browser doesn't render your change soon enough, the only thing you can do is to make it asynchronous with a little timeout.
– Bergi
Nov 28 '18 at 14:40
The document does get ready only once. If you change something, that doesn't "un-ready" the page. If your problem is long-running code and the browser doesn't render your change soon enough, the only thing you can do is to make it asynchronous with a little timeout.
– Bergi
Nov 28 '18 at 14:40
|
show 2 more comments
0
active
oldest
votes
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%2f53465483%2frecursive-table-formulating-function-that-waits-for-page-to-load-before-each-ste%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
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%2f53465483%2frecursive-table-formulating-function-that-waits-for-page-to-load-before-each-ste%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
Where are the promises in your code? Which part is actually asynchronous?
– Bergi
Nov 25 '18 at 12:13
@Bergi can I not just use some sort of wait function before continuing my code?
– tincopper2
Nov 27 '18 at 1:22
No, you will need to use a specific wait function, and if you want to wait for something it'll be asychronous. But what in your code snippet above do you want to wait for?
– Bergi
Nov 27 '18 at 8:00
@Bergi page ready, I have it specified, I only want to update a doc as I am running my code, so the user can see the div update as the code is running
– tincopper2
Nov 28 '18 at 14:25
The document does get ready only once. If you change something, that doesn't "un-ready" the page. If your problem is long-running code and the browser doesn't render your change soon enough, the only thing you can do is to make it asynchronous with a little timeout.
– Bergi
Nov 28 '18 at 14:40