Outputs published for the Web or CD ROM (Web wrapped in EXE) will store variables and other persistent states in cookies or Flash Shared Objects (Flash cookies). As long as the modules are launched from the same machine and the user has not cleared their cache, previous state and variables should restore on subsequent visits.
Hi, Abhinav. There are three settings under Player > Other that determine this behavior:
Prompt to Resume is the default. This will provide a dialog for the user to choose whether they want to resume their previous session. If they select No, all variables and states are cleared out / destroyed and the story is a fresh visit.
Always Resume will automatically jump to the last place in the story when revisiting without displaying a dialog. In this case, the variables and states of the story will always be retained.
Never Resume will always start the story fresh. Variables and states will never be stored with this setting.
I have a question: What triggers the sending/updating of the suspend_data or the Flash cookie? For example, does the user need to transition to a new slide or revisit a slide before the variables are stored for resume?
For example: Let's assume a project was published with "Always Resume" option and it only contained 1 slide. On this slide, there is a button that triggers a numerical variable to increase by 1 every time (i.e. initial value of variable i = 0; when the button is clicked, i++). If the user loads the webpage containing the Storyline project, then clicks the button a few times and sees the variable increase 1,2,3,4,etc., then upon refreshing that webpage will the user see the variable return back to its initial state or will it resume from where it left off?
I have been trying to get the above example to work, but alas ... no success.
So a window refresh will not save the user's status? What about clicking on another link on the page and visiting another web location?
I'm only asking because I want to try to only embed my storyline projects in iframes on the same page. But in this case, a user is not likely to close the window altogether. Rather, the natural tendency is to click on another link and move to a different lesson in the website.
Does this mean that I should have the storyline presentation open in a new window so that the user is more likely to close the window and save his/her state when done?
Would it work if the storyline presentation was opened as a lightbox then closed that way?
I just don't want the user opening too many new windows. My users are small children. The simpler, the more self-contained, the less clicks needed in the lesson, the better. Thanks for you help in advance.
I did some digging ... Is it the JavaScript .unload() event that triggers the storyline to save its state? If so then a page reload should work. Here is the definition I found at w3schools:
"The onunload event occurs once a page has unloaded (or the browser window has been closed).
onunload occurs when the user navigates away from the page (by clicking on a link, submitting a form, closing the browser window, etc.)
Note: you will also trigger the unload event when a user relaods the page (and the onload event)."
If what I am assuming is correct, then why are the states of my storyline projects not saved whenever I refresh the browser page?
I also have file published for the web with "always resume" set and all pages and layers set to "resume saved state". However, on a revisit or reload, the variables are all reset to default and all states on the page go to the initial state.
There has to be something I'm overlooking. Could it be browser security? I looked at flash local storage settings and they are set to allow and look to be storing 4kb of something.
Hi Ashley - I have deployed to our webserver, viewing flash output in Explorer 11, Chrome, and Firefox, Flash player 17. It still seems to dump variables and states on reload, however it does know enough to bring me to slide 2.
Hi Joseph. That's unusual. Do you have a story file to share where this is happening? The only place I can see that might do this is selecting Never Resume in the player settings or firing a Restart Course trigger.
I`ve got a big problem: Variables are only stored after leaving the slide. but if i close the publishes lms content (by JS or trigger) the variable changed on the slide will stay as before the change.
example: variable "end" initial state: 0
trigger: set to 1
display in textfield %end%: "1"
trigger "exit course"
restart the course: end is 0, not 1.
There seems to be no possible way to change a variable on the exit page.
Hi, Ulrich -- Sorry to hear of your difficulties! As this thread is a bit older, if there were certain participants you were hoping to reach, some may no longer be subscribed. As such, you are welcome to use the 'Contact Me' link on an individual's profile page if you wish.
I see that you also mentioned potentially using JavaScript, and I thought I should note that JS is not something for which we would be able to provide support, so we'd have to defer to the JS experts in the community to assist you further.
And finally, you may find it helpful to upload your file so that others in the community are able to take a closer look at what you've described. Please use the grey ADD ATTACHMENT button in the bottom left of the reply box and browse from there. :)
I may be misunderstanding your description but the variable should be remaining based on a trigger executing prior to the user leaving the course - but the difference in this is that the slide's state does not remain until they leave the slide and exit the course so if the trigger is based an a similar element and the slide's state that could be where you're running into an issue. You could always look at a trigger that "jumps to a new slide" and the first trigger on that slide is to exit the course - that would be an easy way to solve it and ensure that the variable value remains based on the trigger and then the user can exit the course. There is also a really great example I like to point to here in terms of saving the users progress and allowing them to exit.
As Christie mentioned if it's JS it's something we'll be unable to assist with - but if you're using a Storyline trigger we're always happy to take a look. You can share it here with the community and staff.
Unfortunately, variables aren't committed to the LMS until a slide change has been triggered. The suggestion Ashley makes above is the only solution I can think of that would work in this case.
I've had some limited success using a lightboxed slide as my exit. The lightboxed slide triggers the retention of the variable change in my testing. Some others have indicated that it doesn't work consistently enough.
thanks for your help! I used the workaround Kate Hoeltscher mentioned. It’s not optimal (when the user exits the course on the „Been Saved Page“ he will get back to this page the next time he opens the course) but for HTML4 Content the best way.
So glad to hear it, Ulrich! Thanks so much for the update, and just a note... When you reply via email, your signature details appear in the forum post publicly. In order to protect your privacy, you are welcome to use the EDIT button beneath your post to remove those details if you'd like. :)
19 Replies
Outputs published for the Web or CD ROM (Web wrapped in EXE) will store variables and other persistent states in cookies or Flash Shared Objects (Flash cookies). As long as the modules are launched from the same machine and the user has not cleared their cache, previous state and variables should restore on subsequent visits.
Thanks a ton, Steve. Minor query: Does the persitence of variables have more to do with Resume setting or the Revisit setting?
Hi, Abhinav. There are three settings under Player > Other that determine this behavior:
Hi,
I have a question: What triggers the sending/updating of the suspend_data or the Flash cookie? For example, does the user need to transition to a new slide or revisit a slide before the variables are stored for resume?
For example: Let's assume a project was published with "Always Resume" option and it only contained 1 slide. On this slide, there is a button that triggers a numerical variable to increase by 1 every time (i.e. initial value of variable i = 0; when the button is clicked, i++). If the user loads the webpage containing the Storyline project, then clicks the button a few times and sees the variable increase 1,2,3,4,etc., then upon refreshing that webpage will the user see the variable return back to its initial state or will it resume from where it left off?
I have been trying to get the above example to work, but alas ... no success.
Best regards,
Belal
the trigger is javascript based on the close window function, it should resume where it left off
Hi Phil,
So a window refresh will not save the user's status? What about clicking on another link on the page and visiting another web location?
I'm only asking because I want to try to only embed my storyline projects in iframes on the same page. But in this case, a user is not likely to close the window altogether. Rather, the natural tendency is to click on another link and move to a different lesson in the website.
Does this mean that I should have the storyline presentation open in a new window so that the user is more likely to close the window and save his/her state when done?
Would it work if the storyline presentation was opened as a lightbox then closed that way?
I just don't want the user opening too many new windows. My users are small children. The simpler, the more self-contained, the less clicks needed in the lesson, the better. Thanks for you help in advance.
Best regards,
Belal
Hi again,
I did some digging ... Is it the JavaScript .unload() event that triggers the storyline to save its state? If so then a page reload should work. Here is the definition I found at w3schools:
"The onunload event occurs once a page has unloaded (or the browser window has been closed).
onunload occurs when the user navigates away from the page (by clicking on a link, submitting a form, closing the browser window, etc.)
Note: you will also trigger the unload event when a user relaods the page (and the onload event)."
If what I am assuming is correct, then why are the states of my storyline projects not saved whenever I refresh the browser page?
Best regards,
Belal
I also have file published for the web with "always resume" set and all pages and layers set to "resume saved state". However, on a revisit or reload, the variables are all reset to default and all states on the page go to the initial state.
There has to be something I'm overlooking. Could it be browser security? I looked at flash local storage settings and they are set to allow and look to be storing 4kb of something.
Should I assume I would need JavaScript for this?
Please help!
Hi Joseph,
Are you testing it within the intended publish environment? What browser(s) have you tested it within? You may want to review the system requirements here and check out those ones to determine if it's a browser issue.
Hi Ashley - I have deployed to our webserver, viewing flash output in Explorer 11, Chrome, and Firefox, Flash player 17. It still seems to dump variables and states on reload, however it does know enough to bring me to slide 2.
Hi Joseph. That's unusual. Do you have a story file to share where this is happening? The only place I can see that might do this is selecting Never Resume in the player settings or firing a Restart Course trigger.
Hi Joseph,
I'd agree with Steve's statement here - it sounds odd and we'll want to take a look at it. You can share the .story file here with us.
I`ve got a big problem: Variables are only stored after leaving the slide. but if i close the publishes lms content (by JS or trigger) the variable changed on the slide will stay as before the change.
example: variable "end" initial state: 0
trigger: set to 1
display in textfield %end%: "1"
trigger "exit course"
restart the course: end is 0, not 1.
There seems to be no possible way to change a variable on the exit page.
Hi, Ulrich -- Sorry to hear of your difficulties! As this thread is a bit older, if there were certain participants you were hoping to reach, some may no longer be subscribed. As such, you are welcome to use the 'Contact Me' link on an individual's profile page if you wish.
I see that you also mentioned potentially using JavaScript, and I thought I should note that JS is not something for which we would be able to provide support, so we'd have to defer to the JS experts in the community to assist you further.
And finally, you may find it helpful to upload your file so that others in the community are able to take a closer look at what you've described. Please use the grey ADD ATTACHMENT button in the bottom left of the reply box and browse from there. :)
Hi Ulrich,
I may be misunderstanding your description but the variable should be remaining based on a trigger executing prior to the user leaving the course - but the difference in this is that the slide's state does not remain until they leave the slide and exit the course so if the trigger is based an a similar element and the slide's state that could be where you're running into an issue. You could always look at a trigger that "jumps to a new slide" and the first trigger on that slide is to exit the course - that would be an easy way to solve it and ensure that the variable value remains based on the trigger and then the user can exit the course. There is also a really great example I like to point to here in terms of saving the users progress and allowing them to exit.
As Christie mentioned if it's JS it's something we'll be unable to assist with - but if you're using a Storyline trigger we're always happy to take a look. You can share it here with the community and staff.
Unfortunately, variables aren't committed to the LMS until a slide change has been triggered. The suggestion Ashley makes above is the only solution I can think of that would work in this case.
I've had some limited success using a lightboxed slide as my exit. The lightboxed slide triggers the retention of the variable change in my testing. Some others have indicated that it doesn't work consistently enough.
Hi Ashley,
thanks for your help! I used the workaround Kate Hoeltscher mentioned. It’s not optimal (when the user exits the course on the „Been Saved Page“ he will get back to this page the next time he opens the course) but for HTML4 Content the best way.
kind regards
Uli
So glad to hear it, Ulrich! Thanks so much for the update, and just a note... When you reply via email, your signature details appear in the forum post publicly. In order to protect your privacy, you are welcome to use the EDIT button beneath your post to remove those details if you'd like. :)
thanks for the tip:-)
This discussion is closed. You can start a new discussion or contact Articulate Support.