0

現在、以下のメソッドを使用して、javascriptを使用していくつかの変数を含む外部phpファイルを呼び出しています

<script src="http://www.domain.com/function.php?param=A" type="text/javascript"></script>

function.php ファイルのコードは、次のような Javascript 形式でデータを返します。

<?php Header("content-type: application/x-javascript");
$p = $_GET['param'];

$r = mt_rand(0, 10);
echo "document.write('" . $p . $r . "');";
?>

これは簡単な例です。私の問題は Google Chrome (v19) にあります。ページの読み込みが完了していない場合、更新を続けると乱数はランダムになりません。ページの読み込みが完了した後に更新ボタンを押したときにのみ、本当にランダムになります。なぜこれが起こり、どうすれば解決できますか?

Firefox 12 と IE8 でテストしましたが、読み込みが完了する前にページを更新しても、乱数は常に再生成されます。

4

2 に答える 2

0

小さな JS ハックが必要です。基本的には、JS でタグを動的に追加し<script>、URL の末尾にランダムなパラメーターを追加します。

var hookScripts = function(url, src) {
    var s = document.createElement("script");
    s.type = "text/javascript";
    s.src = url || null;
    s.innerHTML = src || null;
    document.getElementsByTagName("head")[0].appendChild(s);
};

hookScripts('http://www.domain.com/function.php?param=A&randomSalt=' + Math.random());  

これにより、chrome は JS ファイルを再度要求するようになります。

于 2012-05-29T04:53:37.113 に答える