J'ai une colonne dans ma base de données qui sera mise à jour aléatoirement. Chaque fois que cette colonne est mise à jour, j'ai besoin d'actualiser le contenu sur ma page. Comment puis-je utiliser AJAX + jQuery pour effectuer une action uniquement sur les modifications de la base de données?Utilisez AJAX pour regarder la base de données SQL pour les changements
Répondre
utilisation de la fonction setInterval de javascript pour l'interrogation et de vérifier la valeur du champ de Dababase mis à jour
vérification de lien suivant pour plus de détails http://www.elated.com/articles/javascript-timers-with-settimeout-and-setinterval/
Vous devrez continuellement interroger une page qui a la valeur de la base de données. Accrocher une procédure stockée spéciale dans votre base de données qui alerte votre application après une modification.
Vous aurez besoin d'un module personnalisé et des bonnes instructions de déclenchement.
Votre autre option effectue une interrogation.
Comment alerter l'application, qui se trouve sur le navigateur du client? –
L'application est en deux parties: sur le navigateur et sur le serveur web. Le service Web principal est chargé de parler à la base de données, sauf si le demandeur utilise le style .0000001% pour que le navigateur parle SQL à une base de données. –
+1 pour éviter "l'interrogation de la base de données", même si cela n'empêche pas "l'interrogation client à serveur" –
Le serveur (base de données/Web) ne peut pas établir une connexion - seul le client peut le faire. Vous devrez donc interroger la base de données jusqu'à ce qu'il y ait une mise à jour. Vous pouvez créer un service Web qui vérifie la base de données et les utilisations de jQuery.
Édition: Je suis corrigé. Il est possible de garder une connexion AJAX ouverte jusqu'à ce que le serveur "pousse" les données. Voir: http://en.wikipedia.org/wiki/Reverse_Ajax
Et apparemment, il s'agit vraiment d'interrogation: http://en.wikipedia.org/wiki/Push_technology#Long_polling. Si le serveur n'a encore aucune donnée à envoyer, il maintient la connexion ouverte jusqu'à ce qu'elle le fasse. Ce n'est pas une technologie «pure», car le client n'a pas de port d'écoute auquel le serveur se connecte. L'effet est similaire, cependant.
Éditer 2: Donc, de retour à répondre à votre question ... Vous devrez choisir comment "interroger" le service Web. Le service Web devrait alors vérifier la base de données pour voir s'il y avait des mises à jour. Vérification de la base de données pour les mises à jour pourrait être le plus difficile et dépend vraiment de vos besoins. Vous pouvez exécuter une requête SQL pour voir si quelque chose a changé, mais comment le sauriez-vous? Vous auriez besoin d'une sorte de paramètre (généralement une date) pour comparer. Si mal fait, vous pourriez manquer quelques mises à jour ou avoir plusieurs hits pour une mise à jour. Ce que l'Autocratie a dit serait un bon moyen d'être averti des mises à jour. Vous pouvez conserver cette liste dans la base de données, en mémoire, etc. et l'effacer lorsque le client reçoit les mises à jour.
Vous devrez essentiellement interroger en permanence le serveur pour les modifications de la base de données. Le serveur ne peut pas passer un appel au client, le client devra donc constamment demander au serveur s'il y a eu des changements.
Voir http://en.wikipedia.org/wiki/Reverse_Ajax –
Je suggère de créer une page HTML qui utilise setIntreval() pour faire des appels AJAX à plusieurs reprises à un script PHP qui interroge votre base de données. Vous pourriez utiliser JSON et PEAR pour rendre la tâche un peu plus facile.
Liens de référence:
Merci beaucoup. Votre méthode fonctionne parfaitement! Juste ne peut pas placer l'intervalle trop bas ou il y a des problèmes avec l'ouverture/fermeture des lecteurs de données. –
Ce que vous décrivez est familièrement appelé programmation Comet. Comet décrit un groupe de techniques pour pousser le contenu vers une page Web avec une connexion HTTP persistante.
La poussée serait lancée en utilisant une combinaison déclencheur/procédure stockée dans le serveur de base de données. De cette façon, cela se produit peu importe d'où vient la mise à jour des données.
Vous l'avez. Wikipedia (http://en.wikipedia.org/wiki/Comet_%28programming%29): Comet ... est connu par plusieurs autres noms, y compris Ajax Push, Reverse Ajax, Web bidirectionnel, HTTP Streaming et HTTP le serveur pousse entre autres. –
Cela semble très bien. Je vais devoir regarder dedans. Merci pour le conseil! –
par exemple http://www.ape-project.org/ – choise
Im faire presque la même chose avec un chat recharge un script php chaque xx sec.
se présente comme suit: j avec $ remplacer sinon en utilisant jQuery.noConflict ..
j(".chatref").everyTime(3000,function(i){
j.ajax({
url: "chatx.php",
cache: false,
success: function(updated){
j(".chatref").html(updated);
...do stuff..
}
});
C'est une méthode très agréable je pense :) si vous voulez envoyer vars à chatx.php il suffit d'ajouter ? php & x = 1 & y = 2?>
- 1. Utilisez PHP + jQuery AJAX pour vérifier la base de données MySQL pour les changements et charger les modifications?
- 2. Regarder une page Web pour les changements
- 3. Rails: utilisez régulièrement HEAD pour vérifier les changements de page
- 4. Notifier les changements de propriété pour les données de base?
- 5. Regarder une variable pour les changements sans polling
- 6. Autoriser pour les changements de base de données
- 7. Utilisez-vous la base de données Scimore SQL?
- 8. Java équivalent pour les changements de schéma de base de données comme Sud pour Django?
- 9. Y at-il une tâche ANT pour regarder un répertoire pour les changements?
- 10. Utilisez SMO pour changer l'emplacement par défaut de base de données SQL Server
- 11. Données de base: changements à la section
- 12. Connexion de base de données persistante pour les appels Ajax
- 13. Le moyen le plus compatible pour écouter les changements de base de données?
- 14. Pourquoi une session.Clear() nécessaire pour refléter les changements dans la base de données dans cet exemple?
- 15. Utilisez Require_once() pour inclure correctement les variables de connexion à la base de données
- 16. Stratégie de base de données pour la synchronisation basée sur les changements
- 17. Préparer la base de données pour le clustering SQL Server
- 18. sortie incorrect pour la requête de base de données SQL
- 19. Utilisez AJAX pour recharger le captcha
- 20. Utilisation de SQL pour nettoyer la base de données JIRA
- 21. SQL: Qu'est-ce que vous utilisez pour stocker un ratio (pourcentage) dans une base de données?
- 22. Utilisez jQuery pour définir la couleur d'arrière-plan avec la valeur de la base de données
- 23. _T() macro changements pour les données de caractères UNICODE
- 24. Requête synchrone pour la base de données Web SQL
- 25. DataTable enregistrement optimal pour la base de données SQL
- 26. Regarder une colonne de base de données pour déterminer ce qui modifie
- 27. Optimisation de la base de données SQL Server pour une base de données volumineuse
- 28. Quel type de champ de base de données utilisez-vous pour les entrées oui/non dans SQL Buddy?
- 29. Surveillance Mongo pour les changements avec Node.js
- 30. Générer un script pour tous les objets pour la base de données SQL Server
Pas nécessairement. Il existe des techniques de poussée disponibles. –
@RobertHarvey Tels que? pouvez-vous donner tel? –