繁体   English   中英

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

[英]Auto refresh when server-side progress is complete?

好的,我正在尝试执行此任务表格,一旦访客按一下,他们注册后会弹出一个带有注册表格的新标签页(不是我的实际网站),第二个网站会发送一些信息让我认识这位访客完成他的注册,

好的,但这不是问题,我想从用户开始执行任务的主页面实时接收注册结果,如何做到这一点而不必多次刷新特定页面以检查当前状态,我想实时接收一旦从主页完成注册

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

在第一页中,您可以使用$ .ajax(http://api.jquery.com/jQuery.ajax/)将注册信息发布到数据库,然后在第二页上检索它(也使用$ .ajax) )。 问题是第二页如何知道用户是否在第一页上完成了业务(由“ window.opener”方法标识)? 为此,您可以每隔一秒钟执行一次setTimeout(),以查看注册是否已完成。 如果是,请从数据库中检索信息。

尽管使用$ .ajax可能会过多地依赖用户的Internet连接,但我个人认为它很慢。 一种更快的方法是使用Cookie来检查用户是否已完成注册。

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

您可以这样做:

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

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

使用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发送回一些响应(回显为“ saved”;等等。)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM