私はシャッフルして配列し、いくつかのパラメータに基づいてランダムな順序でそれを返すPHPスクリプトを持っています。 URLに直接スクリプト/パラメータを入力すると、PHPスクリプトの出力はランダムであるはずです。返される配列はシャッフルされます(これを行うにはshuffle($ array)を使用します)。AJAXリクエストされたPHPスクリプトがキャッシュされていますか?
私がAJAX経由で呼び出すときはいつでも、私は同じ結果を得ます。常に同じ順序を返します。 $ .getを$ .ajaxに変更してキャッシュをfalseに設定しようとしましたが、機能しませんでした。$ .get()の値が$ .nowキャッシュ。
スクリプトを呼び出すと、同じ順序が返されますが、URLに直接移動すると問題がなくなり、毎回ランダムになります。私が言ったように、私もキャッシュの無効化の方法を試みたが、何も作業していない、
$.get("scripts/findAnime.php", { q: JSON.stringify(params) }, function(data, status) {
console.log(data);
});
つぶし任意のキャッシュなしですが、:
要求は今、この権利のようになります。
PHPシャッフルは次のようになります。 $ generatedAnimeListに入る複数の配列がありますが、それらはすべてこのようなプロセスを経ます。
私がajax呼び出しを行い、最低$を返すと、ランダムにシャッフルされる代わりに毎回同じ結果が返されます。
if(!empty($least)) {
shuffle($least);
for($i = 0; $i < sizeof($least); $i++) {
array_push($generatedAnimeList, $least[$i]['id']);
}
unset($least);
}
私は喪失しており、非常に刺激されており、何をすべきかわかりません。私は前にこれと同様のコードを持っていたし、それは完全に働いた。今は何もない。
UPDATE:だから私は、文字通り、スクリプトに入れ:
$temp = array(1,2,3,4,5);
shuffle($temp);
echo json_encode($temp);
とリクエストが同じ「ランダム」オーダーごとに時刻を返します。だから、リクエストのあるものは、あまり意味がありません。
更新日:私のブラウザのキャッシュをクリアしました。何もしませんでした。それでも同じ答えが返ってくる。私はパラメータ(q)に基づいて発見した、私は別の答えを得るでしょう。上記の例に基づいて、配列をシャッフルしています。私が "ALL"の値を持つqを送ると、常に同じ番号を返し、 "ACTION"の値でqを送ると、常に同じ番号を返しますが、qが "ALL" 。私は今、壁に向かって私の頭を打つつもりです。
更新いいえ。私は文字通りこのことを次のように取り除いた。 GET要求を行うJSファイル:
$.get("scripts/findAnime.php"+$.now(), function(data, status){
console.log(data);
}
とPHPスクリプト(findAnime.php)はこれです:常に同じ "シャッフル" の結果を得るもの、どんなに
$temp = array(1,2,3,4,5);
shuffle($temp);
echo json_encode($temp);
。私の場合、[5,4,1,2,3]。すべて。くそー。時間。
UPDATE: JSがPHPスクリプトをリクエストしていることを確認でき、毎回200を返しています。それで、新しいコピーを要求しています...少なくとも、おそらく...
コメント/回答ありがとうございます。
separeteブラウザのタブ(通常のgetリクエスト)でphpスクリプトにURLを開いた場合、どのように動作しますか? – rNix
正常に動作します。私がPHPスクリプトに直接ナビゲートすると、ランダムになります。私は一日中リフレッシュすることができ、常にランダムな結果を得ます。 –
'JSON.stringify 'で問題になるかもしれません。 '$ .now()'の値を 'params'に追加しようとしましたか? – rNix