[英]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不同,它可以支持大量数据,并且您可以在其中存储整个注册表格)。 它也比轮询关系数据库相对更快。
您可以这样做:
您仍然需要轮询首页以检查工作是否完成,因为服务器无法启动与客户端的连接。 为了防止页面刷新,请使用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.