문제

현재 공장/창고 유형 위치에서 사용되는 내부 웹 애플리케이션을 구축 중입니다.사용자는 여러 사람이 단일 PC를 공유하므로 사람들이 방황하고 다른 사람이 PC에 와서 이전 사용자의 사용자 이름으로 작업을 수행할 수 있는 로그인된 응용 프로그램을 떠나는 것을 방지하기 위해 상당히 짧은 세션 시간 초과가 필요합니다.

이에 대한 문제는 사용자가 현재 양식에 정보를 입력하는 동안, 특히 시간이 오래 걸리는 경우 세션이 시간 초과될 수 있다는 것입니다.

사용자 친화적인 방식으로 이 문제를 어떻게 처리하시겠습니까?

도움이 되었습니까?

해결책

사용자가 적극적으로 정보를 입력하고 있다는 사실을 서버에 계속 알려주세요.예를 들어 사용자가 Tab 키를 누르거나 필드를 마우스로 클릭하면 서버에 메시지를 보냅니다.최종 해결책은 귀하에게 달려 있습니다.

다른 팁

AJAX를 사용하여 부분적으로 채워진 양식의 내용을 정기적으로 숨겨 시스템에서 부팅하더라도 작업 내용을 잃지 않도록 하십시오.도대체 그렇게 한 후에는 AJAX를 사용하여 입력하는 데 시간을 소비해도 세션이 시간 초과되지 않도록 하세요.

가장 좋은 조언은 작업이 끝나면 사용자에게 브라우저 창을 닫도록 요청하는 것입니다.세션 쿠키를 사용하면 브라우저가 닫히거나 30분 시간 초과(afaik 변경 가능)가 발생하면 세션이 자동으로 종료됩니다.

기본적으로 페이지가 로드되면 브라우저와 서버 사이에 상호 작용이 없기 때문에 세션을 새로 고치려면 양식 페이지의 백그라운드에서 자바 스크립트가 서버에 연결해야 하지만 이는 약간 문제가 되는 것 같습니다. 그런 사소한 문제.

세션 시간 초과가 너무 짧아서 사용자가 양식을 작성할 시간이 없는 경우 몇 분마다 서버에 http 요청을 보내는 AJAX 스크립트를 넣어 세션을 활성 상태로 유지합니다.나는 사용자가 무언가를 채워야 하거나 이미 무언가를 채우기 시작한 페이지에서만 그렇게 할 것입니다.

또 다른 해결책은 사용자에게 세션 시간 초과를 알리는 대화 상자를 표시하는 세션 시간 초과 알림 스크립트를 사용하는 것입니다.팝업에는 세션 시간 초과를 업데이트하기 위해 Ajax 요청을 하는 "로그아웃" 및 "애플리케이션 사용 계속"이 표시되어야 합니다.

아마도 이 경우에는 연결 유지 자바스크립트 프로세스가 도움이 될 수 있습니다.스크립트가 일부 주요 트리거를 캡처하면 "아직 입력 중입니다"라는 메시지를 서버에 보내 세션을 활성 상태로 유지합니다.

양식을 더 작은 덩어리로 나누는 것을 고려해 보셨나요?

시간 초과를 모니터링하고 팝업을 게시하여 사용자에게 현재 세션이 만료되고 "확인" 또는 "취소" 버튼이 표시됨을 알립니다.세션을 계속 진행해도 괜찮습니다(예:필요한 대로 카운터를 5분 또는 10분으로 재설정하거나 취소하여 세션이 계속해서 0까지 카운트다운되어 종료되도록 합니다.
그것은 그것을 처리하는 많은 방법 중 하나입니다.

세션을 열린 상태로 유지하기 위해 JavaScript "스레드"를 사용하는 것은 나에게 나쁜 생각입니다.

이는 애플리케이션 앞에 사용자가 없는 경우 일부 리소스를 해제하기 위해 존재하는 세션 시간 초과 개념에 위배됩니다.

"일반적인 일반적인 사용"으로 양식을 작성하려면 더 정확한 시간으로 세션 시간 초과를 조정해야 한다고 생각합니다.

다음과 같은 방법으로 적극적으로 대처할 수도 있습니다.

  1. 시간 초과가 만료되기 전에 사용자에게 방해가 되지 않는 경고(팝업 아님)를 표시하는 JavaScript 경고가 있습니다. 이는 세션이 곧 만료될 것이라고 말합니다(그리고 시간 초과를 재설정하고 해당 경고를 제거하기 위해 Ajax 요청을 보내는 링크를 제공합니다.) 사용자가 현재 입력 중인 양식을 잃어버리는 것을 방지할 수 있습니다)
  2. 세션이 만료된 경우 세션이 이제 만료되었다는 메시지와 함께 로그인 페이지로 리디렉션되는 두 번째 JavaScript "스레드"도 있습니다.

사용자가 복잡한 양식을 괜히 채우는 것을 피하고, 사용자가 자리를 비웠을 때 사건을 처리해주기 때문에 그게 최선이라고 생각합니다.

기술적 솔루션의 대안으로, 특정 작업(예: 양식 작성)이 완료될 때마다 사용자에게 다른 작업을 계속할지 또는 완료했는지 묻는 방식으로 애플리케이션을 만들 수 있습니다.메뉴 옵션이 있는 시작 화면이 있을 수 있으며 사용자가 옵션을 선택하면 먼저 자격 증명을 입력해야 합니다.

또는 양식에 비밀번호 필드를 입력하세요.세션에서 작성해야 하는 양식 수에 따라 다릅니다.

사용자가 양식을 게시하고 세션 시간이 초과되면 양식 값을 어딘가에 저장한 다음 사용자에게 다시 로그인하도록 요청해야 합니다.귀하를 다시 인증한 후 양식을 다시 제출할 수 있습니다(데이터가 손실되지 않으므로).

나는 매우 긴 세션이 필요한 것을 개발했습니다.사용자는 컴퓨터에 앉은 상태에서 페이지에 로그인했다가 작업을 마친 후 로그아웃했습니다.이제 그는 몇 분 또는 몇 시간 동안 시스템을 사용할 수 있습니다.그가 로그아웃할 때까지 세션을 유지하기 위해 자바스크립트로 타이머를 사용하고 서버로 이동하여 업데이트했습니다. 축가 서버의 현재 시간을 표시합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top