AJAX 에서 웹 브라우저의 새로고침을 하더라도 데이타가 유지되

vudghkzm의 이미지

Prototype 와 Rico 를 이용하여 몇가지 AJAX 기법을 시험해보고 있는 중입니다.

php 파일에서 처리된 결과를 innerHTML 을 이용해서 화면에 있는 데이타는 유지한채 새로운 결과값만 추가시키고 있는데요..

웹 브라우저의 새로고침 버튼을 누르거나, 다른 사이트로 접속했다가 back 버튼을 통해 돌아오면 화면에 새로 추가됐었던 데이타가 모두 사라져버리네요.

예를 들어, 구글맵을 들어가면 처음 보이는 장소는 미국입니다. 거기서 마우스로 우리나라쪽으로 옮겨놓고 난 후에, 웹 브라우저의 새로고침 버튼을 누르게 되면 우리나라가 나타나는것이 아니라, 미국이 나타나게 되는것과 같은 현상입니다...이 상황에서 저는 새로고침을 하더라도 우리나라가 보이게끔 하고 싶은 겁니다.

어떻게 방법이 없나요?

whitekid의 이미지

ajaxt실행 결과를 innerHTML로 가지고 있으니 새로고침 하면 데이터가 지워지는 것 당연한 결과이구요.

이걸 한다면... ajax 호출할 때 사용했던 값(예:대한민국)을 쿠키 같은것으로 저장하고 새로고침할때 자바스크립트 onLoad()에서 ajax를 호출하면 해결될것 같네요.. (물론 해보진 안했습니다. ^^;)

근데. openRico를 사용한다면 innerHTML로 설정하는 곳에서는 쿠키를 설정 할 곳이 없을텐데.. 그렇다면 ajax request를 하기 전에 쿼리를 저장해야겠네요.

What do you want to eat?

tasy의 이미지

일단 whitekid님의 말씀처럼 당연하게 데이터는 지워지는 겁니다. http는 한번 접속으로 사실상의 연결이 종료되고 프로그램은 종료된 것입니다. 이미 종료된 프로그램을 새로 실행시켰는데 이전 구성을 그대로 보이게 하고 싶으시면 일단 GUI프로그래밍 하셨을 때처럼 미리 프로그램이 새롭게 실행된 후에도 값을 얻어올 수 있는 저장 장치에다 현재 모습에 대한 정보를 저장시켜 두고 새롭게 구성할 때 그 값을 이용해 구성하는 방법뿐입니다.

근례로 Google News에서는 각 뉴스 아이템을 개별적으로 수정할 수 있게 하고 있고 Cookie를 이용해서 그 정보를 저장시켜두고 있습니다. 나중에 다시 뉴스에 들어 갔을 때 그것을 기반으로 보여주게 되는거죠.

whitekid님 말씀처럼 쿠키나 세션을 쓰세요. ^^

---------
Byeongweon Moon
http://tasy.jaram.org/blog
사랑하면 알게 되고 알면 보이나니 그때에 보이는 것은 전과 같지 않으리라.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.