J'ai un robot d'indexation PHP qui vérifie les sites Web. J'ai décidé il y a quelques jours de faire progresser les robots en temps réel en utilisant AJAX. Le script php écrit dans un fichier dans JSON et AJAX lit le fichier minuscule. J'ai double et triple vérifié mon script PHP se demandant ce qui se passait parce qu'après avoir terminé le script AJAX simple les données apparaissant sur mon navigateur ont bondi dans des directions étranges.Tampon fou d'Ajax et script php
Le script php s'exécutait parfaitement et très rapidement mais mon AJAX augmentait lentement les valeurs, toutes les 2 secondes comme réglé, puis chutait. Les chiffres augmentent seulement en PHP, ils ne descendent pas. Cependant, les nombres apparaissant sur ma page Web montent et descendent comme si le tampon fonctionnait sur plusieurs sessions ou lisait quelque chose qui est en train d'être mis à jour même si le PHP s'est arrêté il y a environ une heure.
Y a-t-il quelque chose qui me manque ou que je devrais garder à l'écart comme un tampon ou un bouton de réinitialisation?
C'est le plus que je peux montrer, je l'ai giflé il y a très longtemps. Si vous connaissez un meilleur code alors s'il vous plaît partager, j'adore toute aide possible. Mais, je suis un peu nouveau, alors s'il vous plaît expliquer les choses en dehors des fonctions de base.
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);
}
Pourriez-vous publier les éléments pertinents de votre code? –
Pas clair, mais une suggestion stupide. Etes-vous sûr que l'accès Ajax n'exécute pas votre script PHP? –