2009-09-02 1 views
10

페이지를 다시로드 할 때 내 (전역) 변수를 유지할 수 있습니까? 그렇다면 어떻게?브라우저 재로드 버튼을 눌렀을 때 변수 손실 방지

도움 주셔서 감사합니다. 감사합니다.

+1

죄송합니다. 밀도가 높지만 용어가 비표준 인 것 같습니다. "전역 배열 변수"에 대해 무엇을 막을 수 있습니까? 또한 브라우저 재설정 버튼이란 무엇입니까? –

+0

당신이 말하는 것을 설명 할 수있는 코드가 있습니까? –

+0

미안 ... 너 말이 맞다. "가치를 초기화하거나 재설정하는 것을 막는다." 다른 말로; 내 글로벌 가치를 보호하고 다음 작업에서 사용하고 싶습니다. 감사합니다. . 감사합니다. –

답변

2

브라우저가 페이지를 떠날 때 JavaScript 환경이 재설정됩니다. 그러나 배열을 쿠키로 직렬화하려면 onUnload 핸들러를 등록한 다음 페이지가로드 될 때마다 이것을 확인하고 있으면 페이지를 직렬화하십시오.

+0

안녕하세요, Adam 브라우저 재설정 버튼을 누르면 어떻게됩니까? –

+0

쿠키를 사용하지 않고이 문제를 해결하려고합니다. –

1

브라우저에 재설정 버튼이 있습니까, 아니면 다시로드 버튼입니까?

페이지가로드되면 모든 것이 새로 고쳐집니다. 이전 페이지에서 아무것도 남지 않았습니다. 페이지 로딩에서 살아남은 모든 것을 저장하는 유일한 장소는 쿠키에 있습니다.

쿠키에 넣을 수있는 데이터의 양은 사이트 당 몇 킬로바이트로 제한됩니다. 정확한 한도는 브라우저마다 다르지만 쿠키에 2KB 이상의 데이터를 넣을 수는 없습니다.

+0

예 재로드 버튼 ... 고맙습니다. Guffa ... 감사합니다. –

4

당신은 브라우저를 기반 웹킷의 일부에 의해 제공 window.localStorage, window.sessionStorage (독점 모질라 확장) 또는 데이터베이스 추상화 (window.openDatabase) 같은 것을 통해 페이지를 다시로드에서 데이터를 유지 할 수 있습니다. 스토리지 인터페이스에 대한 개요는 this article on MDC을, 데이터베이스 소개에는 this WebKit article을 참조하십시오.

+0

Kangax ... 너무 감사합니다. 매우 흥미 롭습니다. Webkit 기반의 브라우저는 무엇입니까? –

+0

안드로이드, Arora, 구글 크롬, 주현절, iCab, 아이리스 브라우저, 미도리, OmniWeb, rekonq, 사파리, Shiira, Skipstone, MorphOS 용 스푸트니크, SRWare Iron, 스테인리스, Sunrise, TeaShark, S60 용 웹 브라우저, 웹 OS :) (http://en.wikipedia.org/wiki/List_of_web_browsers#WebKit-based_browsers 참조) – kangax

0

쿠키에 대해 이야기하고 있습니까? 알고 싶다면 this open-source module

이렇게하면 브라우저를 다시로드 한 후에도 쉽게 쿠키를 저장할 수 있습니다. 이것은 정말 쉽고, 내가 사용하는 것입니다.

var cookie = new HTTP.Cookies(); 
cookie.write('mydata', 'myvalue', '+1y'); 

//later on you can get that data EVEN AFTER a reload 
var x = cookie.read('mydata'); 

매우 고통스러운이며 Internet Explorer가 작동하는지 확인하기 위해 같은 웹 브라우저에서 테스트를 많이 할 필요가 있기 때문에 비록 당신은 아마 처음부터 쿠키 구현을 만들려고해서는 안된다.

3

동일한 스타일에서 문자열 값을 해시 키에 저장할 수 있습니다.

속성을 사용하여 :

window.location.hash = 'flight/105';

을 당신이 당신의 변수를 다시 초기화 페이지를 새로 고칠 때.

8

시도해보십시오. cookie-less javascript function.

기본적으로 데이터를 window.name 속성에 저장합니다.이 속성은 페이지를 새로 고침하거나 다른 사이트로 이동할 때 값을 지우지 않습니다.

+0

완벽하게 작동했습니다., tyvm –