2014-02-12 1 views
2

가 여기 내 GWT 응용 프로그램입니다, 나는 많은 페이지가 있습니다 CustomerPage, OrderPage을 ... 이러한 각 페이지는 다음과 같이 중간에 & 위에 자신의 컨텐츠에 로그인 패널이 헤더해야합니다 :전체 페이지를 새로 고치거나 사용자가 로그 아웃 할 때 변수를 재설정하는 것이 좋습니다.

 
1- Customer Page 
____________UserName...... Password....... Login 

Customer Content here..... 

2- Order Page 
____________UserName...... Password....... Login 

Order Content here..... 

이 사용자가 모든 페이지에 로그인 할 수 있습니다 의미, 그들은 로그인을 홈페이지로 갈 필요가 없습니다

을 사용자가 특정 페이지에있는 경우 여기에 내 질문입니다 (예 : CustomerPage). &가있는 경우를 로그 아웃 :

1 전체 페이지를 새로 고침하거나 사용자를 다음으로 리디렉션해야합니까? 로그 아웃 페이지이므로 고객 페이지를 다시 열려면 페이지가 모든 초기화 프로세스 (onBind-onReveal-onReset ...)를 거쳐야합니다.

2 사용자가있는 그대로 유지해야합니까? 사용자가 로그 아웃 버튼을 클릭하면 시스템이 변수를 재설정합니다. 이렇게하면 사용자가 다시 로그인하면 모든 (onBind-onReveal-onReset ...)을 거칠 필요가 없으므로 페이지가 더 빨리 실행됩니다. 그러나 그렇게하면 모든 변수를 재설정하기가 어렵습니다. 페이지가 로깅 된 시간에 이미 초기화 된 변수를 기억해야합니다. & null 또는 빈 문자열로 재설정하려고합니다. 내가 1 변수를 재설정하지 못하면 문제가 생길 것입니다.

구글이나 페이스 북과 같은 큰 사이트는 해결책 1을 사용하고 있습니다. 즉, 사용자가 로그 아웃하면 새로운 페이지로 리디렉션되거나 홈페이지로 돌아갑니다.

또한 해결책 1을 채택하면 Window.Location.reload(); &으로 전화하면 모든 것이 재설정됩니다. 사용자가 뒤로 화살표를 클릭해도 모든 데이터가 재설정 된 이후에는 이전 데이터를 볼 수 없습니다.

그래서 : 새 페이지로 리디렉션하거나 같은 페이지에 머무르는 것이 좋습니다. 사용자가 로그 아웃했을 때 (GWT)?

답변

4

사용자가 로그 아웃 버튼을 클릭하면 컴퓨터에서 멀어지기를 기대합니다. 동일한 페이지를 계속 표시하면 다른 사람이 데이터에 액세스 할 수 있습니다.

일반적으로 허용되는 접근 방식은 사용자가 로그 아웃 할 때 모든 데이터를 숨기 (즉, 로그인/홈 페이지로 리디렉션하거나 앱을 완전히 종료)하는 것입니다. 이것이 사용자가 기대하는 것이며, 이것이 사용자가해야하는 일입니다.

0

브라우저에 무엇을로드 했느냐에 따라 다릅니다. 페이지 새로 고침을 통한 로그인/로그 아웃은 사용자에게 느려지고 지연됩니다. 로그 아웃 할 때 (서버 측 세션 삭제, 발표자 바인드 해제, 캐시 지우기) 제대로 정리하면 페이지를 새로 고치는 것이 실제로 선택 사항입니다.

보편적으로 인정 방법은 (즉, 로그인/홈 페이지에 리디렉션 또는 완전히 응용 프로그램을 닫습니다) 때 사용자가 로그인 할 밖으로 모든 데이터를 숨기는 것입니다. 이것이 사용자가 기대하는 것이며, 이것이 사용자가해야하는 일입니다.

로그 아웃 한 후 세션 관리 서버 측에서 RPC를 방지하고 더 이상 데이터를 표시하거나 캐시하지 않으면 반드시 필요한 것은 아닙니다. 앱 요구 사항, 크기,로드 시간 및 전송되는 데이터의 민감도를 기반으로 탈선을 사용하십시오.

관련 문제