0

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

目前我的解决方案是每 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;
?>
4

2 回答 2

1

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

你需要一些示例代码吗?

于 2013-01-15T14:20:49.943 回答
0

检查页面.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;
}
?>

页面.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>
于 2013-01-15T15:21:08.323 回答