2010-03-09 4 views
0

나는 eshop 응용 프로그램을 개발 중입니다. 나는 오라클 데이터베이스에서 주문을 작성하기 위해 webservice를 사용하고 있으며 websvc는 응답 (OrderNumber)을 줄 것이며 그의 주문 (OrderNumber)이 생성되었음을 고객에게 알릴 것입니다. 내 문제 백엔드 시스템 및 사용자에게 주문 작성에 너무 많은 시간이 소요됩니다. 페이지 새로 고침을 유지하고 있습니다. 각 새로 고침 사용자가 주문 작성 페이지로 다시 돌아 오므로 사용자는 주문 생성 버튼을 다시 클릭 할 수 있습니다. 그런 경우 여러 주문이 동일한 주문 라인을 위해 생성됩니다. 사용자가 하나의 주문 만 작성하도록 제한 할 수 있습니다 세션 당 websvc 응답의 주문 번호가 있고 다음 페이지의 고객에게 ordernumber를 줄 수 있습니다. 그러나 응답 (Ordernumber)을받지 못했을 때 실제 문제가 발생하고 사용자가 페이지를 새로 고칩니다. 요청이 이미 백엔드 시스템에 전달되어 주문이 생성되고 응용 프로그램이 응답을받지 못합니다.비동기 PHP 요청 (AJAX 아님)

PHP는 사용자가 요청한 첫 번째 요청이 비동기 적으로 확인할 수있는 방법이 있습니까? 문제는 furthur 페이지 내비게이션 도와주세요. 미리 감사드립니다.

+3

숨겨진 iframe을? –

+0

이것은하지 않습니다 ... 사용자가 페이지를 새로 고치면 iframe도 –

답변

1

여기에서 할 수있는 일은 사용자의 제출 정보 (예 : user-ip-info, submit- 지위). 페이지가로드 될 때이 플래그에 대한 확인을 할 수 있으며이 플래그에 따라 주문 생성 버튼을 활성화/비활성화 할 수 있습니다.

자세한 내용이 필요하면 알려주세요.

pinaki

+0

+1을 새로 고칩니다. SESSION에서 참조 var을 설정하고 쿼리 없이도 동일한 작업을 수행 할 수 있습니다. 그러나 기본적으로 동일한 접근 방식입니다. . –

+0

네, 맞습니다.하지만 미들웨어 응용 프로그램에서 WebService를 사용하여 주문을 작성하고 있습니다.이 webservice는 주문 생성을 담당합니다. 따라서 응답을받지 못하고 사용자가 새로 고침을해야합니다. 페이지 순서가 생성되고 응용 프로그램은 주문 번호를 얻지 못하게되므로 주문을 다시 작성하는 옵션을 제공합니다. ( PHP가 응답을 얻고 페이지 새로 고침이 영향을 미치지 않을 때까지 webservice에 지속적인 연결을해야합니다. 영구 연결 –

+0

사용자가 브라우저를 죽이고 다시 시작할 수 있으므로 페이지 새로 고침을 중지 할 수 없습니다. 사용자가 페이지를 새로 고칠 수 있지만 (데이터베이스 또는 세션 플래그를 사용하여) 웹 서비스 요청을 새로 고치지 않고 새로 고침합니다. 따라서 주어진 IP에서 첫 번째 요청이 완료 될 때까지는 허용하지 않습니다. 또 다른 웹 서비스 작성 명령. 나는 이것이 당신의 문제를 해결해야한다고 생각합니다. 네 생각을 말해봐. – pinaki