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) n 秒ごとに ajax を介して php スクリプトを呼び出すクライアント側スクリプト (javascript) の2 つの部分に分割します。PHP スクリプトが true を返す場合、js はクライアントを新しい宛先にリダイレクトします。ページ全体をリロードする必要はありません - そしてちらつきもありません ;)

サンプルコードが必要ですか?

于 2013-01-15T14:20:49.943 に答える
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>
于 2013-01-15T15:21:08.323 に答える