Domanda

In passato, quando ho coperto gli eventi, ho usato un meta refresh con un timer di 5 minuti per aggiornare la pagina così le persone hanno gli ultimi aggiornamenti.

Rendendosi conto che questo non può essere il modo migliore per farlo (non sempre funziona in IE, interrompe il flusso di una persona, si riavvia le cose per le persone con screen reader, ecc) mi chiedo se c'è qualche altro modo per non gestire questa situazione.

E 'possibile avere qualcosa di simile ajax controllare ogni pochi minuti se il file HTML sul server è più recente e lo hanno stampare un messaggio che dice "Aggiornamento informazioni disponibili, clicca qui per ricaricare"?

Se questo è pazzo, come circa un javascript che solo conto alla rovescia da 5 minuti e solo suggerisce un aggiornamento.

Se qualcuno mi potrebbe indicare tutorial o frammenti di codice lo apprezzerei. Per giocare e basta un programmatore in TV. : -)

È stato utile?

Soluzione

setInterval(function() {
  if (confirm("Its Been 5 Minutes. Would you like to refresh")) {
    window.location.reload(true);
    //Or instead of refreshing the page you could make an ajax call and determing if a newer page exists.  IF one does then reload.

  }
}, 300000);

Altri suggerimenti

In realtà, il vostro pensiero su una prova a tempo Ajax è un'ottima idea. Io non sono sicuro che è esattamente ciò che usi StackOverflow, ma controlla periodicamente per vedere se altre risposte sono state pubblicate e spettacoli l'utente, su un intervallo, se ci sono aggiornamenti.

Credo che questo è l'ideale per questi motivi:

  • E 'discreto - il lettore può facilmente ignorare l'aggiornamento se non si preoccupano
  • Non sprecare larghezza di banda - nessun ricarico a meno che l'utente sceglie di
  • E 'informativo -. L'utente sa che c'è un aggiornamento e può scegliere di agire su di esso

La mia opinione su come - hanno lo script ajax spedire l'ultima id post per uno script che verifica la presenza di nuovi script. Questo script può interrogare il database per vedere se ci sono nuovi messaggi, e quanti ce ne sono. Può restituire questo numero. Se ci sono nuovi messaggi, mostrare qualche messaggio (non modale) tra cui il numero di aggiornamenti, e consentire all'utente di decidere che cosa fare al riguardo.

È possibile utilizzare la setInterval funzione in javascript.

Ecco un esempio

setInterval("refresh function", milliseconds, lang);

È lo userà passando un nome a una funzione che in realtà aggiornare la pagina per la prima param e il numero di millisecondi tra di aggiornamento per il secondo parametro (300000 per 5 minuti). Il terzo parametro lang è facoltativo

Se l'utente interagirà con i punteggi e cliccando sulle cose che sarebbe stato un po 'scortese solo aggiornare la pagina su di loro. Penso che fare qualcosa di simile una notifica che la pagina è stata aggiornata sarebbe l'ideale.

Vorrei utilizzare jQuery e fare una chiamata AJAX al file sul server o qualcosa che restituirà i dati aggiornati. Se è più recente rispetto a un tiro di un messaggio di Growl

Gritter - jQuery Growl Sistema demo di ciò che un Growl sta usando Gritter

Un messaggio Growl sarebbe venuto fuori possibilmente con tutto ciò che è stato cambiato, nuovi punteggi e quindi un'opzione all'interno di quel messaggio per aggiornare e visualizzare i nuovi risultati.

jQuery Ajax informazioni

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top