Aggiornamento pagina php con ajax

masca2055

Nuovo Utente
12 Set 2016
1
0
1
Buongiorno a tutti,
vi espongo il mio problema.
Nel server ho delle tabelle contenute all'interno di un file php, che vengono aggiornate ogni 5 secondi da terzi (programma labview).
In una pagina del mio sito ho bisogno di visualizzare queste tabelle e ho necessità che si aggiornino sempre ogni 5 secondi, senza però riaggiornare la pagina, per far ciò ho utilizzato ajax, e la cosa funziona (non posso purtroppo salvare i file in database e aggiornare quelli, ma posso solo in questo caso aggiornare la pagina php).

Il problema è che delle volte le tabelle non vengono caricate correttamente, o viene visualizzata una pagina bianca, o solo una parte, questo penso sia dovuto al fatto che il caricamento del file sul server non sia ancora completo quando con ajax aggiorno le tabelle sul sito.

Come posso risolvere?

Questo è lo script per l'aggiornamento automatico delle tabelle

<script>
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML = this.responseText; } };
xhttp.open("GET", "tables.php", true);
xhttp.send(); }
setInterval(function(){
loadDoc()}, 5000)
</script>
 

marino51

Utente Attivo
28 Feb 2013
3.039
192
63
Lombardia
sono due processi asincroni che possono essere in conflitto, come hai sperimentato,

la soluzione che mi sento di proporre consiste nel verificare se il contenuto di "tables.php" è completo,
in caso affermativo puoi pubblicarlo,
in caso negativo puoi rifare la lettura (Ajax) immediatamente

la verifica del contenuto è possibile se "tables.php" è strutturato sempre allo stesso modo, ed al suo interno cambiano solo valori operativi

se così non fosse, .... magari arriva qualche idea da altri
 
  • Like
Reactions: masca2055

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, non ti serve il setinterval : una volta che hai verificato lo status dell chiamata ajax puoi rifarla tranquillamente.
Codice:
 function loadDoc() {
        var xhttp = new XMLHttpRequest();
        xhttp.onreadystatechange = function () {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById("demo").innerHTML = this.responseText;
                loadDoc();
            }
        };
        xhttp.open("GET", "tables.php", true);
        xhttp.send();
    }
aggiungendo al massimo un timeout
Codice:
aetTimeout("loadDoc()",5000);
ps: 5 secondi per eseguire una query mi sembrano tanti, controlla gli indici della tabella.
 
Discussioni simili
Autore Titolo Forum Risposte Data
S [PHP] aggiornamento table tramite select senza ricaricare la pagina PHP 5
M [PHP] Far rimanere biffata checkbox dopo aggiornamento pagina PHP 24
M alert dopo aggiornamento automatico pagina php PHP 4
lab php e html - inserimento di dati in database e aggiornamento della pagina html PHP 2
Cosina script data aggiornamento pagina Javascript 1
E Richiamare funzione Jquery dopo aggiornamento parziale di pagina tramite ajax jQuery 0
PikNuke Query senza aggiornamento pagina Ajax 1
P Problema tasferimento magento su altro server > mostra pagina "negozio in aggiornamento" Magento 0
I aggiornamento pagina PHP 4
V login e aggiornamento pagina PHP 2
Shyson Funzione che stampa data ultimo aggiornamento del sito (non della pagina) PHP 4
D aggiornamento pagina asp Classic ASP 1
A Aggiornamento parziale di una pagina Ajax 2
F Aggiornamento Pagina HTML e CSS 2
G aggiornamento di una pagina web da smartphone Discussioni Varie 4
S Aggiornamento Pagina HTML e CSS 2
M Problemi di aggiornamento pagina web HTML e CSS 3
F Aggiornamento testo pagina html Classic ASP 2
A Tabella con bottoni per aggiornamento record PHP 6
L non duplicare dati in stato "aggiornamento" PHP 6
S Aggiornamento lista record Database 2
C Aggiornamento automatico da un sito ad un’altro WordPress 0
R aggiornamento valore db in base all'orario PHP 1
strambotto Query di aggiornamento MS Access 0
A [WordPress] Aggiornamento tema - non apre più il sito WordPress 0
L [Javascript] Drag and drop. Aggiornamento Campo Javascript 2
Max 1 Aggiornamento Windows Windows e Software 1
A [HTML] alternative a Google Maps - aggiornamento condizioni giugno 2018 HTML e CSS 6
Y [PHP] Aggiornamento sito PHP 8
N Cerco sviluppatore ASP per aggiornamento sito e-commerce esistente Offerte e Richieste di Lavoro e/o Collaborazione 0
momeraths [WordPress] cURL error: problema aggiornamento/installazione plugin WordPress 4
D [WordPress] Aggiornamento a php 5.6 causa blackout del sito WordPress 2
alessandroz Select ... where... AND... aggiornamento PHP non funziona PHP 9
crealatualista [PHP] Aggiornamento data e ora PHP 2
V [PHP] aggiornamento automatico immagini sito web PHP 3
booklisa Errori wordpress personalizzazione tema post aggiornamento 4.7 CMS (Content Management System) 0
Eugene [PrestaShop v.1.6.1.11] Problemi post aggiornamento CMS (Content Management System) 1
P [PHP] Loop WHILE aggiornamento campi e tabelle. PHP 2
fabryx Aggiornamento automatico periodico dati mySQL PHP 6
Monital [Javascript]Barra di aggiornamento in pop pup Javascript 1
S [Javascript] Ultimo aggiornamento Javascript 6
D Creazione, riprogettazione e aggiornamento di siti web Offerte e Richieste di Lavoro e/o Collaborazione 0
P Aggiornamento vecchio sito Webdesign e Grafica 2
gandalf1959 Aggiornamento di una variabile da un form PHP 7
F Aggiornamento variabili php PHP 1
T Problema con l'aggiornamento di una tabella <Table> PHP 5
C Aggiornamento automatico tabella db sql PHP 1
A Aggiornamento Hardware Hardware 1
P Creazione maschera con aggiornamento automatico MS Access 0
S aggiornamento div con passaggio parametri da href Ajax 8

Discussioni simili