有人可以指出我关于我的问题的正确方向
我该怎么做?任何输入都会有所帮助。我只需要想法就可以开始这个......
答案 0 :(得分:2)
要能够导航到其他页面并在公共标题中获取通知,需要更复杂的设计。这是基本概念:
让用户点击可以启动请求的页面时,让您的服务器确保浏览器中存在唯一的cookie。此Cookie将用于跟踪用户,以便您知道哪个结算事务与哪个浏览器相关。如果已经有登录cookie,您也可以使用它。
使用异步Ajax调用(默认情况下它们是异步)来提交请求。在jQuery中,您可以使用$.ajax()
或$.post()
或$.get()
执行此操作,具体取决于您要使用的确切选项。收到请求后,服务器需要获取标识用户的唯一cookie,并将其保存为事务处理的一部分,以便知道哪个浏览器会通知完成。
提交请求后,无论用户做什么,它都将在服务器上完成。
现在,您需要设置一种方法,以便在公共标头中获得完成通知。您可以通过几种不同的方式来实现这一目标:
公共标头中的某些代码可以在具有此公共标头的站点中的每个网页上设置与服务器的webSocket连接。此webSocket将允许服务器在与该用户的cookie匹配的计费事务完成时直接向浏览器发送通知。在服务器上连接webSocket后,它将需要记录连接的套接字和匹配的cookie,以便它知道哪个用户使用哪个webSocket。然后,当结算交易完成后,它可以找到具有相应cookie的webSocket并向其发送通知。浏览器将通过webSocket接收通知,然后可以显示它想要的任何视觉通知。
您可以在浏览器中设置一个事务挂起的cookie,而不是webSockets,并在设置事务时给它一个相对较短的过期时间(可能是15分钟)。然后,在当前网页和站点上的任何其他页面中,检查是否存在该事务挂起的cookie,如果存在,则使用定期计时器上的Ajax调用轮询服务器(可能每隔几分钟)向服务器询问您的cookie或用户ID的交易是否已完成。当服务器报告完成后,您将显示要显示的任何视觉通知。您需要在您网站的所有网页中的某个公共位置使用此轮询代码(可能在公共标题中)。
要求用户刷新页面或导航到新页面以查看通知。对于此方法,您只需让服务器跟踪它对给定用户的任何待处理通知,并且只要该用户请求页面,您的服务器就可以在呈现页面时将通知插入公共标头。从用户的角度来看,这是最不理想的实现,因为除非他们恰好在正确的时间导航网站(他们必须手动刷新通知),否则不会主动通知他们。
答案 1 :(得分: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';
});