У меня есть скрипт, который раскрашивает запрашиваемую страну на карте мира с помощью GD и PHP. PHP-запросы вызываются с флажками. Это похоже на то, что если вы слишком быстро вызываете PHP-скрипты, то это возвращает изображение ошибки «Xed out». Есть ли способ поставить в очередь запросы PHP с помощью setTimeout или чего-то еще, чтобы новое событие проверки никогда не завершалось неудачей?
Вот Javascript, вызываемый событиями onClick:
function onBoxClicked(frame, country){
var randomNumber = Math.floor(Math.random()*100000001);
if (document.getElementById(country).checked == true){
window.parent.document.getElementById('world_map').src=(country)+".php?r=" + randomNumber;
}else if (document.getElementById(country).checked == false){
window.parent.document.getElementById('world_map').src=(country)+"_unload.php?r=" + randomNumber;
}
}
Вот типичный PHP-файл для страны (я знаю, что есть какой-то мусор, который можно удалить):
<?php
session_cache_limiter('nocache');
$cache_limiter = session_cache_limiter();
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");// Date in the past
$ip=$_SERVER['REMOTE_ADDR'];
$oldImageName = 'world_map2_users_copy.png';
$newImageName = $ip.'.'.'world_map2_users_copy.png';
if (file_exists($newImageName)){
$im = imagecreatefrompng($newImageName);
}else{
copy($oldImageName, $newImageName);
$im = imagecreatefrompng($newImageName);
}
$syria_color = imagecolorallocate($im, 0, 158, 96);
imagefill($im, 780, 205, $syria_color);
ImagePNG($im, $newImageName);
ImagePNG($im);
ImageDestroy($im);
?>