2014-12-04 207 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