Ping на JavaScript
Автор: SysaninАвг 28
Конечно же полноценный пинг на JS сделать нельзя, потому что он не дает возможности формировать и получать ICMP пакеты. Но можно схитрить и для пинга использовать объект image. В нем указать адрес картинки на пингуемом сервере. По событиям error и load определять доступность сервера. В коде это будет выглядить как-то так:
img.onload = function() {
alert('Сервер доступен');
}
img.onerror = function() {
alert('Сервер не доступен');
}
img.src = 'http://НАШ_СЕРВЕР/НАША_КАРТИНКА';
Думал реализовать это с помощью iframe, что бы можно было пинговать не только по картинкам, но и по страницам (что вобще более удобно, несомненно). Но iframe не поддерживает событие erorr (при ошибке загрузки там отображается зарезерверованная страница браузера), так что этот вариант отпадает. Вариант с использованием XMLHttpRequest (на основе ajax), не подхоидт так как политики безопасности браузеров запрещают совершать аякс запросы к серверам отличным от сервера, с котоорго получена страница.
2 коммент.
Пишет Sova | дата: 20 сентября 2010 в 13:34
Отработает один раз, потом картинка будет браться из кеша. Если немного поправить, то будет работать правильно:
img.src = ‘http://НАШ_СЕРВЕР/НАША_КАРТИНКА’ + Math.random();
Пишет Sysanin | дата: 6 октября 2010 в 21:58
Ваша правда, если включено кэширование в браузере будет из кэша тянуть для моего примера