2014-04-04 2 views
0

게임을 만들고 완성 된 레벨의 배열을 쿠키에 저장하려고합니다. 이것은 쿠키가 처음 만들어 졌을 때 매우 잘 작동하지만 나중에 다시 돌아가서 쿠키를 재생하면 읽기 전용으로 보이고 페이지를 다시로드하기 전에 변경되지 않습니다.쿠키를 읽기 전용으로 만들기

Like : var completedLevels = [1,1,0,0,0,0,0];은 게임을 처음 실행할 때 편집 할 수 있지만 게임을 닫고 다시 돌아 오면 어레이는 이전 상태 (예 : [1,1,0,0,0,0,0])로 잠 깁니다.

이것은 분명히 내가 찾던 동작이 아니기 때문에 쿠키를 생성시에 읽기 전용으로 만들지 않을지 궁금해하고 있습니다. 지금까지의 나의 연구 결과는 쿠키가 읽기 전용으로 만되어서는 안된다는 사실을 보여주는 것으로 보인다. 나는 조금 의심 스럽지만, 과거에는 쿠키로 그다지 해본 적이 없어서 혼란 스럽다. [1,0,0,0,...], 레벨 2 : [1,1,0,0,...] 등 먼저 배열 인 게임을 플레이 :

편집

지금 그래서 [0,0,0,0,...] 후 사용자는 레벨 1과 배열 업데이트를 완료합니다. 레벨이 완료되면 그 배열은 쿠키에 넣어집니다 : document.cookie = "completedLevels=" + this.completedArr + "; expires=Mon, 3 April 2034 20:47:11 UTC path=/";. 이제 레벨 1,2와 4에서 플레이 했으므로 어레이가 다음과 같이 보일 것입니다 : [1,1,0,1,...], 페이지를 닫고 나중에 다시 돌아와 레벨 3을 재생할 수있을 것으로 기대하십시오. 그 레벨을 끝내면 같은 이전에 배열을 [1,1,1,1,...]으로 업데이트 한 코드는 코드가 작동하지만 쿠키가 아닌 버전을 업데이트합니다.

+2

ACTUAL 코드는 코드에 문제가있는 것처럼 들리므로 (특히 읽기 전용 쿠키가 없기 때문에) 표시하십시오. 또한 배열에 쿠키를 넣을 수 없다는 것을 알아야합니다. 쿠키는 문자열이기 때문에 먼저 배열을 문자열로 변환해야합니다. – jfriend00

+0

게임 클라이언트 측/JS 전용입니까, 아니면 서버 코드입니까? 쿠키 설정은 무엇입니까? 무엇이 쿠키를 읽는가? "이전에 어떤 국가에 갇혀 있니?"라는 말은 무엇을 의미합니까? 코드를 보여주고 구체적인 정보를 얻으십시오. 클라이언트 측 – JAAulde

+0

자세한 내용은 편집 참조 – dlkulp

답변

0

데이터를 다시로드 할 때 문자열에서 배열로 다시 변환하기 만하면됩니다. localStorage와 쿠키 모두 문자열을 사용하므로 내 연결이 암시 적으로 배열에서 문자열로 변환되었습니다. 페이지를 닫은 후 다시 열면 데이터가 문자열로 다시로드되고 배열로 간주되는 var에 덤프되어 문제가 발생합니다.

관련 문제