2014-12-04 2 views
0

사람은 내가 연간 청구를 실행하는 시스템을 가지고 내 문제비동기 요청하는 방법을

  1. 에 대한 올바른 방향으로 날 지점 수 있습니다.
  2. 현재 제한 사항은 사용자가 요금 청구가 완료 될 때까지 페이지에 머물러야하는 결제 프로세스를 실행 한 후입니다.
  3. 결제가 처리되면 다른 페이지로 이동합니다. 완료되면 알림을받습니다.

어떻게하면됩니까? 모든 입력이 도움이 될 것입니다. 이 작업을 시작하기위한 아이디어가 필요합니다.

+0

사용자가 다른 페이지로 이동 한 경우 어떻게 완료 되었습니까? 그들이 통보 할 수있는 몇 가지 공통 헤더를 갖기 위해 탐색 할 모든 페이지가 있습니까? 또는 사용자가 http://www.google.com으로 이동하면 어떻게 알리라 고 기대합니까? – jfriend00

+0

모든 페이지에는 공통 헤더가 있습니다. 사용자에게 결제 프로세스가 완료되었음을 알리고 싶습니다. –

답변

2

다른 페이지로 이동하여 공통의 헤더에 알림을받을 수있는 능력을 가지고하려면 좀 더 복잡한 디자인을 필요로한다.

  1. 이 서버가 고유 한 쿠키는 사용자가 요청을 시작할 수있는 페이지를 히트 브라우저 언제에 있는지 확인 유무 : 여기에 기본 개념입니다. 이 쿠키는 사용자를 추적하는 데 사용되므로 어떤 결제 거래가 어떤 브라우저와 연결되는지 알 수 있습니다. 이미 로그인 쿠키가있는 경우이를 사용할 수도 있습니다.

  2. 비동기식 Ajax 호출 (기본적으로 비동기식)을 사용하여 요청을 제출하십시오. jQuery에서 정확하게 사용하려는 옵션에 따라 $.ajax() 또는 $.post() 또는 $.get()을 사용하여이 작업을 수행 할 수 있습니다. 요청이 수신되면 서버는 사용자를 식별하고 트랜잭션 처리의 일부로 저장하는 고유 한 쿠키를 가져 와서 완료를 알리는 브라우저를 알 수 있도록해야합니다.

  3. 요청이 제출되면 사용자가 수행하는 작업과 관계없이 서버에서 완료됩니다.

이제 공용 헤더에서 완료 사실을 알리는 방법을 설정해야합니다. 당신이 할 수있는 몇 가지 방법이 있습니다 :

  1. 이 공통의 헤더가 사이트의 모든 웹 페이지에서 서버로 웹 소켓 연결을 설정할 수 있습니다 일반적인 헤더의 일부 코드입니다. 이 webSocket을 사용하면 서버가 해당 사용자의 쿠키와 일치하는 결제 트랜잭션이 완료되는 즉시 브라우저에 알림을 보낼 수 있습니다.서버에서 webSocket을 연결하면 연결된 소켓과 일치하는 쿠키를 기록해야 어떤 사용자가 어떤 webSocket을 사용하는지 알 수 있습니다. 그런 다음 결제 트랜잭션이 완료되면 적절한 쿠키가있는 webSocket을 찾아 알림을 보낼 수 있습니다. 브라우저는 webSocket을 통해 알림을 수신하고 원하는 시각적 알림을 표시 할 수 있습니다.

  2. 웹 소켓 대신 브라우저에 트랜잭션 보류 쿠키를 설정하고 트랜잭션이 설정 될 때 비교적 짧은 만료 (약 15 분)를 지정할 수 있습니다. 그런 다음 현재 웹 페이지와 사이트의 다른 페이지에서 해당 트랜잭션 보류중인 쿠키가 존재하는지 확인하고, 존재한다면 반복 타이머 (몇 분마다)로 Ajax 호출을 사용하여 서버를 폴링합니다. 쿠키 또는 사용자 ID가있는 트랜잭션이 아직 완료되었는지 서버에 확인합니다. 서버가 작업을 완료했다고보고하면 표시 할 시각적 알림을 표시합니다. 이 폴링 코드는 모든 사이트의 웹 페이지 (일반적으로 공통 헤더에 있음)의 일반적인 위치에 필요합니다.

  3. 알림을 보려면 사용자가 페이지를 새로 고치거나 새 페이지로 이동해야합니다. 이 방법을 사용하면 서버가 특정 사용자에 대해 보류중인 알림을 추적하게하고 해당 사용자가 페이지를 요청할 때마다 서버는 페이지를 렌더링 할 때 공용 헤더에 알림을 삽입 할 수 있습니다. 이는 적시에 사이트를 탐색하지 않는 한 사전에 통지되지 않기 때문에 사용자 관점에서 가장 바람직하지 않은 구현입니다 (알림을 수동으로 새로 고쳐야 함).

+0

와우 ... 감사 ... 명확한 그림 ... 내 요구 사항에 따라 ... 답변으로 받아 들일 것입니다 ... 감사합니다 jfriend00 –

0

jQuery로 AJAX 요청을 활용할 수 있습니다. 아래의 문서를 참조하십시오. 이것은 당신이 탐색 할 수

window.location.href='http://www.example.com'; 

: 성공적인 AJAX 요청을 수행하면

이있다 당신이 다음 줄을 실행할 수 있습니다 ... 콜백을 소요하고 완료시 실행하는 .done() 기능이 있습니다 입력 된 URL에. 다음은 GET 요청을 수행한다는 가정입니다.

예 솔루션 :

$.ajax({ 
    url: "test.html", 
}).done(function() { 
    window.location.href='http://www.example.com'; 
}); 

jQuery.ajax() | jQuery API Documentation

+1

안녕하세요, 답장을 보내 주셔서 감사합니다. 한 가지 질문 .... 요청이있을 때 ... 콜백을 기다릴 필요가 없습니다. –

+0

문제 없습니다. 콜백은'.done()'내부의 함수가 될 것이다. AJAX 요청에서 응답을 받으면 자동으로 실행됩니다. 이 예에서는 브라우저를 입력 된 URL로 이동합니다. – justinpinili

+0

나는 이해 .... 나를 differents 페이지로 이동하고 그것이 완료되면, 그것은 나를 다시 리디렉션 ... bcoz 처음에 내가 뭔가를 스레딩 관련 일을해야한다고 생각 ... –

관련 문제