2008-09-25 3 views
1

, 우리는 우리가 사용자가 자신의 사이트 계층 구조로 놀러 할 수있는 장소가 있습니다.사용자가 페이지를 떠날 때 ASP.NET의 페이지 정보를 어떻게 저장합니까? 페이지를 추가하고 제거, 주변의 페이지 이동 등</p> <p>우리 주위에 이동 페이지를 구현하기 위해 드래그에게 & 놓기를 사용하여 - 우리의 CMS에서

각 이동을 DB에 저장하고 많은 HTML 파일로 내 보내야합니다. 우리가 모든 작업을 할 때마다 그렇게하면 사용자 속도가 느려질 것입니다. 따라서 사용자가 원하는대로 얼마든지 게임을 즐기고 각 변경 사항을 DB에 저장하고 페이지를 떠날 때만 HTML 파일에 변경 사항을 내보내는 것이 바람직하다고 생각했습니다.

사용자가 변경 사항을 적용 할 준비가되면 사용자가 '게시'버튼을 클릭하도록 생각했지만 사용자는 일단 이동 한 후에는 입장에서 생각하기 때문에 기억하지 않을까 걱정됩니다 새 장소로 페이지 이동 - 작업이 완료됩니다. 버튼의 또 다른 문제점은 사이트의 다른 부분의 동작과 일치하지 않는다는 것입니다 (예 : 사용자가 페이지 내부의 텍스트를 이동하면 업데이트 할 HTML 파일이 하나뿐이므로 변경 사항이 자동 저장 됨)

페이지를 떠날 때 사용자 변경 사항을 자동으로 저장하려면 어떻게해야합니까?

답변

3

자바 스크립트로 페이지를 떠날 때 사용자에게 경고해야합니다. http://www.siafoo.net/article/67에서

:

최신 브라우져는 어떤 이벤트가이 페이지가 언로드 원인이 발생할 때 바로 해고 window.beforeunload라는 이벤트가 있습니다. 여기에는 링크 클릭, 양식 제출 또는 탭 또는 창 닫기가 포함됩니다.

방문 대부분의 브라우저에서 샘플 작품이 페이지 :

http://www.webreference.com/dhtml/diner/beforeunload/bunload4.html

가 나는, 먼저 사용자를 묻지 않고 페이지를 저장하는 나쁜 습관이다 정상적인 웹 페이지가 작동하지 방법 이잖아 생각합니다.

샘플 :

은 내가 생각할 수있는 가장 쉬운 방법은 페이지 정보를 사용자가 UpdatePanel, 않는다면, onUpdated 이벤트와 예 (Ajax를 사용하여 주위 항목을 이동 때마다 저장하는 것입니다
<SCRIPT LANGUAGE="JavaScript1.2" TYPE="text/javascript"> 
<!-- 
function unloadMess(){ 
    mess = "Wait! You haven't finished." 
    return mess; 
} 

function setBunload(on){ 
    window.onbeforeunload = (on) ? unloadMess : null; 
} 

setBunload(true); 
//--> 
</SCRIPT> 
+0

웹 페이지 작동 방식에 대한 귀하의 의견을 이해합니다. 그러나 이것은 웹 응용 프로그램입니다. 예를 들어 물건 이동 (추가 또는 삭제)을 수행하면 다시 클릭하지 않고도 변경 사항을 저장할 수 있습니다. –

1

, 그것은 몇 가지 스크립트를 발사하자 그 스토리지 엔진을 변경하려는 경우가 아니면, 그것은 기본적으로 로컬 MDB를 사용 (닷넷의 WebParts 구현은 프로그래머의 개입없이 자동으로 수행

1

사용에 "-. 사용자의 페이지 설정을 업데이트 또는

. 게시 "체 ckbox/버튼을 클릭하고 사용자가 페이지 이동을하게하는 방식으로 페이지와 상호 작용하면 해당 상자가 선택되지 않았거나 클릭되지 않으면 게시할지 묻습니다. 브라우저를 닫고 즐겨 찾기 메뉴에 액세스하는 등의 작업이있어서 사용자에게 알리지 않거나 사용자에게 알리지 못할 수 있습니다.

1

나는 게시와 같은 버튼을 클릭해야합니다. 그것이 '훈련'문제입니다.

떠날 때 자동으로 변경 사항을 저장하면 다른 결과가 발생할 수 있습니다. 예를 들어 사용자가 레코드를 열고 주위를 둘러보고 변경하려는 의도가없는 경우 단어 문서, Excel 등과 같이 레코드를 닫습니다. . 나는 당신의 사이트를 그 모델을 모방하게 할 것이다.

또한 웹은 연결이 끊긴 환경이며 모든 웹 응용 프로그램이 Windows 응용 프로그램처럼 실행될 필요는 없음을 기억해야합니다.

사용자가 게시/저장 버튼을 클릭하지 않으면 변경 사항이 저장되지 않고 저장해야합니다.