Как показать кнопку если файл существует на сервере или скрыть кнопку если файла нет (можно с jquery или без), при этом периодически проверять наличие файла? Можно проверить как локально, так и по URL.
Вот серверная часть, например имя файла file_exists.php
:
<?php
$filename = $_GET['filename'];
if (file_exists($filename)) {
echo 'show';
} else {
echo "hide";
}
?>
А вот клиентская часть:
Например у нас есть тег и он изначально скрыт:
<button class="file_exists_button hide">Existing file</button>
Вот код на jquery
который периодически (каждые 10 секунд) проверяет наличие файла:
<script>
var timerId = setInterval(function() {
$.ajax({
url: 'file_exists.php?filename=sample1.txt', //Здесь нужно задать `url` файла обработки `ajax` запроса
success: function(data) {
$('.file_exists_button').removeClass('show').removeClass('hide').addClass(data);
}
});
}, 10000);
</script>
А это кусок css
для показа и скрытия кнопки:
.show{
display: block;
}
.hide{
display: none;
}
Можно брать head
файла аяксом, чтобы не загружать его полностью:
$.ajax({
type: 'HEAD',
url: 'http://www.example.com/myfile.html',
success: function() {
$('.btn').show();
},
error: function() {
$('.btn').hide();
}
});
Допустим на сервере PHP. создаем "example.php" в нем возвращаем true если файл есть, false если нет.
Спёрто у @Razmik Galstyan example.php
:
<?php
$filename = $_GET['filename'];
if (file_exists($filename)) {
echo "true";
} else {
echo "false";
}
?>
и сторона клиента, где ".selector" ваш селектор на кнопку:
JQ Ajax
Можно сделать периодический запрос, и вызвать AutoUpdateTime
!!ТОЛЬКО 1 РАЗ!! после ответа или ошибки запрос повториться через 10 секунд (10000мс)
function AutoUpdateTime() {
$.ajax( "example.php" )
.done(function(data, textStatus, jqXHR) {
if (data=="true")
$(".selector").show();
else
$(".selector").hide();
//Происходит при ответе
})
.fail(function(jqXHR, textStatus, errorThrown) {
//Происходит при ошибке
})
.always(function(datajqXHR, textStatus, jqXHRerrorThrown ) {
setTimeout(AutoUpdateTime, 10000);
});
}
}
Если файл доступен не только на стороне сервера, то можно воспользоваться решением @Artem Gorlachev
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
У меня есть такая табличкаПодскажите как сделать так, чтобы по клику на элемент с классом table__row_active открывались все элементы с классом table__row_noactive...
Сейчас делается проверка на стороне клиента полей на заполнение и проверка регулярным выражениемНаписано все объемно,так скажем примитивно...
Пытаюсь сделать infinite scroll, с php, smarty и jquery ajaxКак я понял, для того, чтоб не нагружать сильно сервер идеально осуществлять весь процесс на клиентской...