Mysql
 sql >> Base de données >  >> RDS >> Mysql

Existe-t-il un moyen "d'écouter" un événement de base de données et de mettre à jour une page en temps réel ?

Ce n'est pas trop difficile. Le moyen le plus simple serait d'ajouter via .append :

$( '#table > tbody:last').append('<tr id="id"><td>stuff</td></tr>');

L'ajout d'éléments en temps réel n'est pas tout à fait possible. Vous devez exécuter une requête Ajax qui se met à jour dans une boucle pour "attraper" le changement. Donc, pas totalement en temps réel, mais très, très proche. Votre utilisateur ne remarquerait vraiment pas la différence, contrairement à la charge de votre serveur.

Mais si vous voulez vous impliquer davantage, je vous suggère de regarder DataTables . Il vous offre de nombreuses nouvelles fonctionnalités, notamment le tri, la pagination, le filtrage, la limitation, la recherche et le chargement ajax. À partir de là, vous pouvez soit ajouter un élément via ajax et actualiser la vue du tableau, soit simplement ajouter via son API. J'utilise DataTables dans mon application depuis un certain temps maintenant et ils ont toujours été cités comme la fonctionnalité numéro 1 qui rend l'immense quantité de données utilisable.

--Modifier --

Parce que ce n'est pas évident, pour mettre à jour le DataTable que vous appelez, définissez votre appel Datatables sur une variable :

var oTable = $('#selector').dataTable();

Ensuite, lancez ceci pour faire la mise à jour :

  oTable.fnDraw(false);

MISE À JOUR - 5 ans plus tard, février 2016 :C'est beaucoup plus possible aujourd'hui qu'il ne l'était en 2011. Les nouveaux frameworks Javascript tels que Backbone.js peuvent se connecter directement à la base de données et déclencher des modifications sur les éléments de l'interface utilisateur, y compris les tables de modification, de mise à jour ou suppression de données ... c'est l'un des principaux avantages de ce cadre. De plus, les interfaces utilisateur peuvent être alimentées en mises à jour en temps réel via des connexions socket à un service Web, qui peuvent également être interceptées et traitées. Bien que la technique décrite ici fonctionne toujours, il existe aujourd'hui beaucoup plus de façons "en direct" de faire les choses.