服务器端进度完成后自动刷新?

时间:2012-06-15 17:08:05

标签: php javascript jquery ajax

好的,我正在尝试这样做 一个任务表格,一旦访客按下开始,它会在注册后弹出一个带有注册表格(不是我的实际网站)的新标签,这第二个网站会发送一些信息让我知道这个访客完成了他的注册,

没关系,但这不是问题,我想从用户启动任务的主网页上直接收到注册结果,如何做到这一点,无需多次刷新特定页面来检查当前状态,我想从主页面完成注册后立即收到

使用jquery,javascript或php或任何可能性来执行此操作

4 个答案:

答案 0 :(得分:1)

在第一页中,您可以使用$ .ajax(http://api.jquery.com/jQuery.ajax/)将注册信息发布到数据库,然后在第二页上检索它(使用$。 ajax以及)。问题是第二页如何知道用户是否已在第一页上完成业务(由“window.opener”方法识别)?要做到这一点,你可以做一个setTimeout()一定秒,看看注册是否已经完成。如果是,请从数据库中检索信息。

虽然使用$ .ajax可能过分依赖用户的互联网连接,但我个人觉得它很慢。更快捷的方法是使用cookie来检查用户是否已完成注册。

还有一种称为“本地存储”的相对较新的HTML5方法,它充当客户端数据库(与cookie不同,它可以支持大量数据,您可以将整个注册表存储在其上)。它也比轮询关系数据库快。

答案 1 :(得分:0)

你可以这样做:

  1. 收听第二个网站的消息
  2. 使用ajax
  3. 让任务表格询问您的服务(每秒或适合您的需要)
  4. 当消息到达时,返回“true”。如果没有返回“false”
  5. 当客户收到“true”时,在客户端执行您的操作。

答案 2 :(得分:0)

您仍然需要轮询主页以检查是否已完成工作,因为服务器无法启动与客户端的连接。要防止页面刷新,请使用AJAX进行轮询。

答案 3 :(得分:0)

使用jQuery ajax将注册数据发送到服务器,并在完成事务(将用户保存到数据库)后返回一些响应。在回调函数中抓取它并做更多事情(显示消息/重新加载页面的某些部分等等)

所以请将您的注册数据发送到服务器页面,如下

$(function(){

   $("form").submit(e){
    e.preventDefault();
       $.post("yourRegistrationProcess.php",$("form").serialize(),function(data){
          //You have the response from server in data variable.
          // Do whatever you want next with that.          
       });
   });

});

假设您将用户注册数据保存到表格后,从yourRegistrationProcess.php(回显“已保存”;等等)发回一些回复。