Может ли кто-нибудь привести меня к правильному пути, чтобы сделать живые уведомления?
например, зная, когда новая строка добавлена в Mysql
знать, изменился ли файл php?
как я должен это делать?
Вы можете регулярно проверять сервер на наличие обновлений с помощью setInterval()
, или вы можете использовать длительный опрос с помощью javascript. Преимущество setInterval()
заключается в том, что он не слишком долго связывает открытые на сервере подключения, но у вас могут быть обновления во время «простоя» между серверными вызовами. Длительный опрос даст вам почти мгновенные обновления, так как он ждет, пока соединение будет открыто до получения новой информации. Но, очевидно, нижняя сторона заключается в том, что у вас есть связи, которые остаются открытыми повсюду.
setInterval(function(){ $.get("updates.php", {}, function(results){ if ($(results).length) { $("results").each(function(){ // do something with update messages }); } }); }, 30000); // Every 30 seconds.
Вы можете найти пример длительного опроса с PHP и jQuery по адресу http://blog.perplexedlabs.com/2009/05/04/php-jquery-ajax-javascript-long-polling/
Вы можете использовать триггеры db для просмотра изменений в определенных таблицах и вставки данных уведомления в новую таблицу. Затем. периодически запрашивайте таблицу db с помощью JQuery и ajax.
Процедура:
users
таблицы для вставки, обновления и удаления users
будут изменены, триггер добавит новую запись в notifications
подробным описанием того, что было изменено notifications
для новых записей и покажите их пользователю. Этот простой рабочий процесс может быть не так прост в реализации, как вы надеялись, но это обеспечило бы работу эффективно.