Если пользователь заходит на сайт, выполняется интервал (js), который каждую секунду вызывает файл PHP (для обновления текста и изображений).
Но если кто-то загружает изображение, он / она перенаправляется на URL с помощью .php.
Я ввел «заголовок» внизу, чтобы перенаправить пользователя обратно на страницу после загрузки.
На рабочем столе все работает отлично. На Android код PHP не работает, если пользователь возвращается.
gallery.php:
<?php
header( "Access-Control-Allow-Origin: *" );
$count = 0;
$oldcount = 0;
if ( $handle = opendir( "../../archive/images/" ) ){
while ( ( $file = readdir( $handle ) ) !== false ){
if ( !in_array( $file, array( ".", ".." ) ) && !is_dir( "../../archive/images/" . $file ) )
$count++;
}
}
if ( $count == $oldcount ){
exit;
}
else{
$oldcount = $count;
$count = 0;
$files = glob( "../../archive/images/" . "*.*" );
foreach( $files as $image ){
if ( $image ){
echo '<img src="' . $image . '" /></img>';
}
}
}
?>
Протестировано на нескольких Android. Каждый раз одно и то же. Похоже, у него есть проблема с вызовом этого кода после загрузки чего-либо.
setInterval(
function(){
$( "#gallery" ).load( "system/communicate/gallery.php" );
$( "#chat" ).load( "system/communicate/output.php" );
}, 1000 );
Есть идеи почему? Это известная ошибка?
Если вы хотите попробовать, пожалуйста, сделайте. Вот мой URL: www.m7-studios.de пользователь / электронная почта: тест, pw: тест
Android-браузер, вероятно, кеширует ваши 1-секундные запросы.
Опция 1
На вашей галерее.php и output.php
отправьте несколько заголовков, чтобы они не кэшировались
<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>
Вариант 2
Добавьте случайное число в строку, чтобы браузер Android решил, что это новый файл
setInterval(
function(){
var myrandom=Math.random();
$( "#gallery" ).load( "system/communicate/gallery.php?random="+myrandom );
$( "#chat" ).load( "system/communicate/output.php?random="+myrandom );
}, 1000 );
Других решений пока нет …