Ho una colonna nel mio database che verrà aggiornata casualmente. Ogni volta che la colonna viene aggiornata ho bisogno di aggiornare il contenuto sulla mia pagina. Come posso utilizzare AJAX + jQuery per eseguire un'azione solo su modifiche DB?Utilizzare AJAX per visualizzare il database SQL per le modifiche
risposta
uso funzione setInterval di javascript per il polling e per controllare il valore del campo dababase aggiornato
controllo seguente link per maggiori dettagli http://www.elated.com/articles/javascript-timers-with-settimeout-and-setinterval/
È necessario eseguire il polling continuo di una pagina che ha il valore dal database.
Aggancia una stored procedure speciale nel database che avvisa l'applicazione dopo una modifica. Avrai bisogno di un modulo personalizzato e delle istruzioni di attivazione corrette.
L'altra opzione sta eseguendo il polling.
Come avviserà l'applicazione, che si trova sul browser del cliente? –
L'applicazione è divisa in due parti: sul browser e sul server web. Il servizio Web di back-end è responsabile della comunicazione con il database, a meno che il richiedente non stia utilizzando lo stile .0000001% di fare in modo che il browser comunichi SQL a un database. –
+1 per un modo per impedire il "polling del database", anche se non impedisce il "polling client-server" –
Il server (database/web) non può avviare una connessione - solo il client può. Quindi dovrai eseguire il polling del database fino a quando non ci sarà un aggiornamento. È possibile creare un servizio Web che controlla il database e che utilizza jQuery.
Modifica: Sono corretto. È possibile mantenere aperta una connessione AJAX finché il server non "invia" dati ad essa. Vedi: http://en.wikipedia.org/wiki/Reverse_Ajax
E a quanto pare è in realtà il polling: http://en.wikipedia.org/wiki/Push_technology#Long_polling. Se il server non ha ancora alcun dato da inviare, mantiene aperta la connessione fino a quando non lo fa. Non è una tecnologia push "pura", perché il client non ha una porta di ascolto a cui il server si connette. L'effetto è simile, comunque.
Modifica 2: Quindi torna a rispondere alla tua domanda ... Dovrai scegliere come "interrogare" il servizio web. Il servizio Web dovrebbe quindi controllare il database per vedere se ci sono stati aggiornamenti. Il controllo del database per gli aggiornamenti potrebbe essere il più complicato e dipende in realtà dalle tue esigenze. Puoi eseguire una query SQL per vedere se qualcosa è cambiato, ma come lo sapresti? Avresti bisogno di una sorta di parametro (tipicamente una data) da confrontare. Se fatto male, potresti perdere alcuni aggiornamenti o avere più hit per un aggiornamento. Quello che ha detto l'Autocrazia sarebbe un buon modo per ricevere notifiche degli aggiornamenti. È possibile mantenere l'elenco nel database, nella memoria, ecc. E cancellarlo quando il client riceve gli aggiornamenti.
Fondamentalmente è necessario eseguire il polling continuo del server per le modifiche al DB. Il server non può effettuare una chiamata al client, quindi il client dovrà semplicemente chiedere al server se ci sono state modifiche.
Vedere http://en.wikipedia.org/wiki/Reverse_Ajax –
Suggerirei di creare una pagina HTML che utilizza setIntreval() per effettuare ripetutamente chiamate AJAX a uno script PHP che interroga il database. Potresti usare JSON e PEAR per rendere l'operazione un po 'più semplice.
Link di riferimento:
. Molte grazie. Il tuo metodo funziona perfettamente! Semplicemente non è possibile impostare un intervallo troppo basso o ci sono problemi con i lettori di dati di apertura/chiusura. –
Quello che stai descrivendo è colloquialmente chiamato programmazione Comet. Comet descrive un gruppo di tecniche per spingere il contenuto in una pagina Web con una connessione HTTP persistente.
La spinta verrebbe avviata utilizzando una combinazione di procedura trigger/memorizzata nel server di database. In questo modo, si verifica indipendentemente da dove proviene l'aggiornamento dei dati.
Hai capito. Wikipedia (http://en.wikipedia.org/wiki/Comet_%28programming%29): Comet ... è conosciuto con diversi altri nomi, tra cui Ajax Push, Reverse Ajax, Two-way-web, HTTP Streaming e HTTP server spingere tra gli altri. –
Sembra molto carino. Dovrò esaminarlo. Grazie per il consiglio! –
per esempio http://www.ape-project.org/ – choise
sto facendo quasi stessa cosa con una chat, ricarica uno script php ogni xx sec.
appare come questa sostituire j con $ se non si utilizza jquery.noconflict ..
j(".chatref").everyTime(3000,function(i){
j.ajax({
url: "chatx.php",
cache: false,
success: function(updated){
j(".chatref").html(updated);
...do stuff..
}
});
Questo è un metodo molto bello penso :) se si desidera inviare a Vars chatx.php basta aggiungere ? php & x = 1 & y = 2?>
- 1. Usa PHP + jQuery AJAX per controllare il database MySQL per le modifiche e caricare le modifiche?
- 2. Il modo migliore per gestire le modifiche del database
- 3. Come utilizzare uno script per interrogare il database SQL sqlite
- 4. Come impostare le autorizzazioni per il database in sql azure?
- 5. pprint(): come utilizzare le virgolette per visualizzare le stringhe?
- 6. Come posso bloccare un database di SQL Server per le modifiche?
- 7. Come si esegue git log per visualizzare le modifiche solo per un ramo specifico?
- 8. kibana per database sql
- 9. Metodologie migliori per il controllo delle modifiche del database
- 10. jQuery watch per le modifiche di domElement?
- 11. Il miglior strumento per visualizzare le ontologie?
- 12. Come utilizzare il progetto del database SQL Server
- 13. orologio modello di modulo per le modifiche
- 14. Come implementare timestamp automatici per modifiche ai record (SQL Server)
- 15. Qual è il modo migliore per "ripristinare" le modifiche?
- 16. Vimdiff: visualizzare il numero totale di modifiche
- 17. Come utilizzare le classi factory con linq per sql?
- 18. Come utilizzare logicamente PHP per visualizzare tutti i possibili valori di una tabella di database?
- 19. C'è un modo per guardare un database mysql per le modifiche usando perl?
- 20. Come utilizzare un SQL for loop per inserire le righe nel database?
- 21. Quale pacchetto utilizzare per le migrazioni del database in Go?
- 22. I cursori del database raccolgono le modifiche ai dati sottostanti?
- 23. Quale comando SQL posso utilizzare per visualizzare la struttura di una tabella su SQL Server?
- 24. Utilizzare lo stesso database sia per le entità personalizzate che per il contesto di identità?
- 25. Come aggiungere il codice per inizializzare il database sql
- 26. Come faccio ad ascoltare per il database SQL Server cambia
- 27. Per quanto tempo il database SQL Web rimarrà nei browser?
- 28. utilizzando msbuild per creare un database sql
- 29. Come guardare una directory per le modifiche?
- 30. Controlla l'elenco delle directory per le modifiche?
Non necessariamente. Ci sono tecniche push disponibili. –
@RobertHarvey Come? puoi darlo? –