¿Es posible crear una variable, que no cambia al actualizar la página, en javascript?

After I ask this question:

I was thinking about this solution:

  • Create a boolean flag inside the javascript script and make it verdadero:
    • verdadero indicates refreshing the page using the browser.
    • false indicates refreshing the page using a button.
  • Inside onclick attribute of the button, I set bandera a false y llama window.location.reload() to refresh the page.
  • Inside onload atributo de <body> tag, I check the bandera if it's true switch to Home tab else switch to Page1 tab where it contains the <div> tag I want to refresh its contents. After that, set bandera a verdadero.*

But unfortunately it doesn't work and flag es siempre verdadero cuando se trata de onload atributo de <body> tag. Is it possible (somehow) to create a variable, that doesn't change on refresh the page, in javascript?

*My page consistes of many tabs, first one is Home (where it should be shown when refreshing the page using the browser) and second one is Page1 (where it contains the <div> tag I want to refresh its contents and where it should be shown when refreshing the page using the button)

preguntado el 28 de agosto de 11 a las 02:08

this sounds like a perfect cookie situation. -

4 Respuestas

No. However, you can store the variable's value in a number of ways.

  • una galleta
  • in the url (query string)
  • hidden element on page set from a session variable.

Respondido 28 ago 11, 06:08

The browser is stateless, which means that everything on the page is refreshed each time the page loads.

There are a few ways to store persistant information that you can access between requests:

  • Store the data you want in a cookie and read it when the page loads
  • Pass data to the URL and read the current URL (including the data that you passed) when the page loads. For example: Redirect the browser to http://something.com/yourpage.html#flag=true if the user refreshed through the browser or redirect to http://something.com/yourpage.html#flag=false if the user clicked the button. On the onload of the page just read the current URL and see what the flag is.
  • Use a cookie to create a session and store data on the server (technically this is very similar to the first option except you just store a token on the client and pass it to the server to retrieve data that was stored there)

Respondido 29 ago 11, 01:08

This sounds like a situation where you could use sessionStorage or localStorage in the browser and if the browser doesn't support that, you could fallback on cookies...

Respondido 28 ago 11, 06:08

You can persist the data by using cookies, window.name, and window.location.hash key

Respondido 28 ago 11, 06:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.