2014-12-04 209 views
0

有人能指出我在正確的方向關於我的問題如何使異步請求

  1. 我有一個運行年度的結算系統。
  2. 當前限制是用戶運行結賬過程後,他/她必須留在頁面中,直到結算完成。
  3. 我需要這樣做:一旦計費仍在處理中,我可以導航到不同的頁面。一旦完成,我會收到通知。

我該怎麼做?任何輸入都會有幫助。我只是需要想法來開始這個..

+0

如果用戶導航到其他頁面,您會如何得到通知?他們可能導航到的所有頁面都有一些共同的標題,通知可能在哪裏?或者,您如何期望用戶在去http://www.google.com時收到通知? – jfriend00 2014-12-04 02:43:34

+0

所有的頁面都有一個共同的標題..我只是想提示用戶帳單處理完成。 – 2014-12-04 02:48:59

回答

2

要有導航到其他頁面,並獲得在共用首部的通知的能力,需要一點點更復雜的設計。這裏的基本概念:

  1. 您的服務器,確保了獨特的cookie在瀏覽器中隨時存在用戶點擊您的請求可以被開啓新的一頁。此cookie將用於跟蹤用戶,以便您知道哪個結算交易與哪個瀏覽器一起使用。如果已經有一個登錄cookie,您也可以使用它。

  2. 使用異步Ajax調用(它們是默認的異步)來提交請求。在jQuery中,您可以使用$.ajax()$.post()$.get()執行此操作,具體取決於您要使用的選項。收到請求時,服務器需要獲取標識用戶的唯一cookie並將其保存爲事務處理的一部分,以便知道哪個瀏覽器通知完成。

  3. 一旦請求被提交,它就會在服務器上繼續完成,而不管用戶做什麼。

現在,您需要設置一種方法來在您的通用標題中獲得完成通知。有幾個不同的方式,你可以這樣做:

  1. 在共用首部可以設置在具有這個共同的報頭中的網站WebSocket連接到服務器的每個網頁上的一些代碼。這個webSocket將允許服務器在與該用戶的cookie匹配的賬單處理完成時直接向瀏覽器發送通知。在服務器上連接webSocket時,它需要記錄連接的套接字和匹配的cookie,以便知道哪個用戶使用哪個webSocket。然後,當結算交易完成後,它可以找到具有相應cookie的webSocket並向其發送通知。瀏覽器將通過webSocket接收通知,然後可以顯示任何想要的視覺通知。

  2. 取代webSockets,您可以在瀏覽器中設置事務掛起cookie,並在事務設置時給它一個相對較短的到期時間(可能是15分鐘)。然後,在當前的網頁,並在網站上的任何其他頁面,你檢查,看看是否能交易懸而未決cookie存在,如果是這樣,你一個重複計時器使用Ajax調用輪詢服務器(可能每隔幾分鐘)詢問服務器與您的cookie或用戶ID的交易是否完成。當服務器報告完成後,您會顯示您想要顯示的任何視覺通知。您需要在您站點的所有網頁的某個常見位置使用此輪詢代碼(可能位於公共標題中)。

  3. 要求用戶更新他們的網頁或瀏覽到一個新的頁面才能看到該通知。對於這種方法,你就只能在服務器保留任何未決的通知,它有給定用戶,每當用戶請求一個頁面,您的服務器可以插入到通知共用首當它呈現在網頁的軌道。這是從用戶的角度來看的角度最不理想的實現,因爲他們沒有主動通知,除非他們碰巧航行在正確的時間(他們必須手動刷新的通知)的網站。

+0

哇...謝謝...清晰的畫面......按我的要求......會接受這個作爲答案...謝謝jfriend00 – 2014-12-04 03:14:51

0

你可以利用jQuery的AJAX請求。請參閱下面的文檔。

一旦執行成功的AJAX請求,有一個.done()功能,需要一個回調,並在完成後將運行...還有,你可以執行以下行:

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

這將允許您導航到輸入的URL。以下是假設您正在執行GET請求。

例解:

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

jQuery.ajax() | jQuery API Documentation

+1

感謝您的答覆...一個問題....請求已作出時嗨,你好,沒有必要對我來說,等待回調嗎? – 2014-12-04 02:18:13

+0

沒問題。回調將成爲'.done()'中的函數。一旦你從你的AJAX請求得到迴應,這將自動運行。在這個例子中,它將瀏覽器導航到輸入的URL。 – justinpinili 2014-12-04 02:19:41

+0

我明白....這讓我瀏覽到的網頁型動物,它是完成時,重定向我回來...... bcoz最初我想我要做的有關線程的東西... – 2014-12-04 02:25:49