Мое маленькое приложение работает следующим образом: при простом вводе текста пользователю предлагается ввести URL-адрес.При изменении мой скрипт пытается извлечь и отобразить первые 10 изображений, найденных на этой странице.
<input type="text" name="url" id="url" value="">
$("form.link-form input#url").change(function() {
var request = $.ajax({
type: "GET",
url: "funzioni/ajax/loadImagestFromUrl.php",
data: "url=" + insertedUrl,
dataType: "html",
timeout: 5000,
success: function(res) {
loadUrlImages2div(msg99);
},
error: function() {
request.abort();
}
});
});
PHP-скрипт loadImagestFromUrl.php запустите этот код, используя PHP Simple HTML DOM Parser библиотека:
set_time_limit(5);
$html = file_get_html($url); // load into this variable the entire html of the page
$count=1;
foreach($html->find('img') as $key=>$element) { // only images
if ($count==11) break; //only first 10 images
echo "<img class=\"imgFromUrl\" src=\"".$element->src."\" />\n";
}
$count++;
}
Это прекрасно работает в большинстве случаев, но некоторые URL-адреса недоступны в течение нескольких секунд или не защищены паролем, и сервер продолжает что-то выполнять, даже если для тайм-аута установлено 5 секундajax-запрос и 5 секунд для выполнения php-кода.
Когда это происходит, все блокируется, даже обновление страницы невозможно, потому что она загружается и загружается и только через много времени возвращает «504 Gateway Time»-out. Сервер не ответил вовремя. "
Сможете ли вы помочь мне понять, как полностью заблокировать этот запрос и позволить серверу продолжать работать?