我有一个保留页面,一旦创建了该页面,就会重定向到另一个页面。
目前,我的解决方案是每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;
?>
答案 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>