0

웹 응용 프로그램에서 개발중인 &은 Domino R9 서버 (비 X 웹 응용 프로그램)에서 호스팅됩니다. 각 양식에는 서버 측 비즈니스 로직에 대해 구현 된 WebQueryOpen 및 WebQuerySave 이벤트가 있습니다. 문제는 모든 페이지에서 브라우저에서 페이지가 새로 고쳐지면 응용 프로그램의 홈 페이지/양식이로드된다는 것입니다. 이 응용 프로그램에서 페이지의 상태를 유지하고 싶습니다. 또한 페이지가 언젠가 유휴 상태이고 세션이 만료 된 경우 Ajax 기반 세션 처리 (백엔드)를 구현할 가능성이 있습니다. 예를 들어, 사용자가 웹 편집기 (CKEditor 최신 버전에서 구현)에 무언가를 쓰고 있고 세션이 자동으로 끊어지면 최소한의 번거 로움없이 시작할 수 있어야하며 이미 작성된 내용은 손실되지 않을 수 있습니다.Domino 웹 응용 프로그램에서 페이지 상태를 유지하는 방법

답변

0

내 제안은 WebQueryOpen과 WebQuerySave를 사용하지 않는 것입니다. 대신 최신 웹 기술 (Ajax, JSON, REST API)을 사용하도록 애플리케이션을 작성하면 항상 페이지를 저장하고 다시 열 필요가 없습니다. 그렇게하면 원하는 모든 것을 얻을 수 있습니다.

표준 HTML 및 Javascript (또는 jQuery)를 사용하여 페이지를 작성한 다음, 서버에서 Ajax 호출로 데이터를 읽고 쓸 수 있습니다. 당신은 모든 필드와 CKEditor에서 내용을 저장할 수 있습니다
http://blog.texasswede.com/mwlug-2015/
http://blog.texasswede.com/my-mwlug-presentation-2/
http://blog.texasswede.com/my-connect-2017-demo-code/

+0

전적으로 동의하지만 문제는 이전 버전의 Lotus Domino 즉 Domino 7.0에 내장 된 거대한 응용 프로그램 사용자 정의입니다. 몇 가지 최신 기능을 통합했지만 비즈니스 로직을 변경하는 데 한계가 있습니다. WebQueryOpen & Save는 애플리케이션의 모든 페이지에 구현되며, 필연적으로 새로운 것을 얻기 위해 필자는이를 통과해야합니다. 내 현재의 도전은 페이지 상태 지속성 및 AJAX 기반 호출입니다. – Fundi

+0

세션 처리를 위해 Ajax 호출을 통해 백엔드의 임시 문서를 업데이트하는 함수를 작성해보십시오. 이것이 내가하는 방법입니다. 모든 필드의 값을 읽고 백엔드에 문서의 UNID와 함께 전달하는 Javascript 함수를 작성하십시오. setInterval()을 사용하여 2 분마다 (또는 적절하다고 생각되는 모든 것)이 함수를 호출하십시오. (계속) –

+0

서버에서 임시 양식 (일반 양식과 다른 양식 이름 사용)을 작성하는 스크립트를 작성하고 모든 값을 입력하십시오. 문서가 저장되면 clearInterval()을 사용하여 업데이트를 중지하고 서버에서 임시 문서를 삭제합니다 (동일한 스크립트에 대한 다른 Ajax 호출을 사용하여 이번에는 임시 페이로드를 삭제할 특수 페이로드로 호출 함) 문서. –

0

:

나는 다운로드 코드 샘플을 많이하고 심지어 완성 된 코드로, 정확히에 여러 프리젠 테이션을 준 JSON 문자열 및 현재 엔터티 (= 페이지)에 대한 UNID (또는 "기본 키")도 포함됩니다.

이후

, 당신은 ...이 AJAX를 사용하여 서버에 캐릭터 라인, 또는 대안으로 ...

을 보낼 수 있습니다 당신은 HTML5 로컬 스토리지를 사용하여 시도? 이 페이지를 참조하십시오 : https://www.w3schools.com/html/html5_webstorage.asp 어떻게 하시겠습니까?

+0

정말 좋은 생각입니다. "CKEditor"로 작성된 텍스트와 함께 브라우저 저장 장치에 DocUNID를 저장하고 AJAX를 사용하여 서버에 게시 할 수 있습니다. 페이지 상태 지속성을 위해 어떻게 사용할 수 있습니까? 특히 "WebQueryOpen/Save"는 모든 페이지에서 구현되며 AJAX를 사용하여 서버에 데이터를 게시하고 사용자의 세션이 끝난 경우 어떻게 처리 할 수 ​​있습니까? 코드를 통한 세션? – Fundi

+0

Notes가 코드를 통해 세션을 만들 수 없다고 생각합니다. 서버의 WebQueryOpen/Save에서 일반 문서, 동일한 Notes 데이터베이스 또는 다른 데이터베이스 또는 관계형 데이터베이스의 정보를 저장하고 검색 할 수 있습니다. 세션이 끝나면 사용자가 다시 들어가서 웹 응용 프로그램에서 양식을 열 때 정보를 복구하고 예를 들어 양식의 HTMLHeader에있는 Javascript 변수와 같이 페이지를 보낼 수 있습니다. 아직 HTML5 로컬 저장소를 사용하지는 않았지만 Domino 애플리케이션에서는 매우 흥미 롭습니다. –