WebサイトをチェックアウトするだけのPHP Webクローラーがあります。数日前に、AJAXを使用してクローラの進行状況をリアルタイムで表示することを決めました。 PHPスクリプトはJSONでファイルに書き込み、AJAXは小さなファイルを読み込みます。AjaxとPHPスクリプトのクレイジーバッファー
PHPスクリプトをチェックしたところ、シンプルなAJAXスクリプトを完成させた後、私のブラウザに表示されるデータが奇妙な方向に上下に飛び跳ねてしまったため、何が起こっているのか不思議でした。
PHPスクリプトは完璧かつ非常に速く実行されましたが、私のAJAXは2秒ごとにゆっくりと値を増やしてからドロップします。数字はPHPで増加するだけで、下がることはありません。しかし、PHPが約1時間前に停止したにもかかわらず、バッファが複数のセッションで作業しているか、更新中のものから読み込んでいるかのように、私のWebページに表示されている数字が上下しています。
バッファやリセットボタンのようにわかりにくいものがありますか?
これは私が見せることができる最大のものです。私はちょうどそれを本当に長い時間前に叩きました。あなたが良いコードを知っているなら、共有してください。私は可能な助けが大好きです。しかし、私は新しくなっていますので、基本的な機能以外のことを説明してください。
AJAX
//open our json file
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
//display json file contents
document.form.total_emails.value = ajaxRequest.responseText;
}
}
ajaxRequest.open("GET", "test_results.php", true);
ajaxRequest.send(null);
PHP
//get addresses and links
for($x=(int)0; $x<=$limit; $x++){
$input = get_link_contents($link_list[0]);
array_shift($link_list);
$link_list = ($x%100==0 || $x==5)?filter_urls($link_list,$blacklist):$link_list;
//add the links to the link list and remove duplicates
if(count($link_list) <= 1000) {
preg_match_all($link_reg, $input, $new_links);
$link_list = array_merge($link_list, $new_links);
$link_list = array_unique(array_flatten($link_list));
}
//check the addresses against the blacklist before adding to a a file in JSON
$res = preg_match_all($regex, $input, $matches);
if ($res) {
foreach(array_unique($matches[0]) as $address) {
if(!strpos_arr($address,$blacklist)){
$enum++;
json_file($results_file,$link_list[0],$enum,$x);
write_addresses_to_file($address, $address_file);
}
}
}
unset($input, $res, $efile);
}
あなたのコードの適切な部分を投稿できますか? –
明らかではありませんが、暗い示唆です。あなたはAjaxへのアクセスがあなたのPHPスクリプトを実行していないと確信していますか? –