显示页面直到满足条件然后重定向

时间:2013-01-15 14:15:15

标签: php loops redirect conditional-statements

我有一个保留页面,一旦创建了该页面,就会重定向到另一个页面。

目前,我的解决方案是每5秒刷新一次保留页面,每次检查是否已创建新页面。问题是页面闪烁。

有没有办法在标题中使用简单的while循环执行此操作但仍显示保持页面html。谢谢。目前的代码如下。

<?php
ob_start();
$id = escapeshellarg($_GET['id']);
$id = str_replace("'", "", $id);
$url = 'http://sub.testxxx.com/'. $id . '/index.html';
$handle = @fopen($url,'r');
if(!$handle) {
header("Refresh: 5; url=http://testxxx.com/loading.php?id=".$id);
ob_flush;
} else {
sleep(5);
header("Location: http://sub.testxxx.com/".$id);
}
?>
<html>
...........

</html>
<?
ob_flush;
?>

2 个答案:

答案 0 :(得分:1)

我会将它分成两部分: 1)服务器端脚本(php)检查页面是否已创建且 2)客户端脚本(javascript) )每隔n秒通过ajax调用php脚本。如果php脚本返回true,则js将客户端重定向到其新目标。无需重新加载整个页面 - 并且没有闪烁;)

您需要一些示例代码吗?

答案 1 :(得分:0)

checkPage.php:

<?php
$id = escapeshellarg($_GET['id']);
$id = str_replace("'", "", $id);
$url = 'http://sub.testxxx.com/'. $id . '/index.html';
$handle = @fopen($url,'r');
if(!$handle) {
return true;
} else {
return false;
}
?>

page.php文件:

<html>
<head></head>
<body>
<script type="text/javascript">
$.ajax({
  url: 'checkPage.php?id=someId',
  success: function(data) {
    $(location).attr('href','http://sub.testxxx.com/someId/index.html');
  }
});
</script>
</body>
</html>