Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Existe uma maneira de 'ouvir' um evento de banco de dados e atualizar uma página em tempo real?


Isso não é muito difícil. A maneira simples seria adicionar via .append:
$( '#table > tbody:last').append('<tr id="id"><td>stuff</td></tr>');

Adicionar elementos em tempo real não é totalmente possível. Você teria que executar uma consulta Ajax que atualiza em um loop para "pegar" a alteração. Então, não totalmente em tempo real, mas muito, muito próximo disso. Seu usuário realmente não notaria a diferença, embora a carga do seu servidor pudesse.

Mas se você quiser se envolver mais, sugiro olhar para DataTables . Ele oferece alguns recursos novos, incluindo classificação, paginação, filtragem, limitação, pesquisa e carregamento de ajax. A partir daí, você pode adicionar um elemento via ajax e atualizar a visualização da tabela ou simplesmente anexar por meio de sua API. Eu tenho usado DataTables em meu aplicativo há algum tempo e eles têm sido consistentemente citados como o recurso número 1 que torna a imensa quantidade de dados utilizável.

--Editar --

Como não é óbvio, para atualizar o DataTable que você chama, defina sua chamada de Datatables para uma variável:
var oTable = $('#selector').dataTable();

Em seguida, execute isso para fazer a atualização:
  oTable.fnDraw(false);

ATUALIZAÇÃO -- 5 anos depois, fevereiro de 2016:Isso é muito mais possível hoje do que era em 2011. Novas estruturas Javascript, como Backbone.js, podem se conectar diretamente ao banco de dados e acionar alterações nos elementos da interface do usuário, incluindo tabelas de alteração, atualização ou exclusão de dados... é um dos principais benefícios desse framework. Além disso, as UIs podem receber atualizações em tempo real por meio de conexões de soquete para um serviço da Web, que também podem ser capturadas e executadas. Embora a técnica descrita aqui ainda funcione, existem maneiras muito mais "vivas" de fazer as coisas hoje.