当MySQL数据库变化时AJAX发送消息通知客户端代码
时间: 2023-08-30 21:12:28 浏览: 104
您可以使用AJAX长轮询技术来实现MySQL数据库变化时向客户端发送消息通知。
具体实现步骤如下:
1. 在客户端代码中使用AJAX发送一个请求到服务器端。
2. 服务器端接收到请求后,执行一个无限循环,等待MySQL数据库的变化。
3. 当MySQL数据库发生变化时,服务器端将变化的信息返回给客户端。
4. 客户端接收到服务器端返回的信息后,再次发送请求,继续等待下一次MySQL数据库的变化。
以下是一个简单的示例代码,供您参考:
客户端代码:
```javascript
function longPolling() {
$.ajax({
url: 'server.php',
type: 'GET',
async: true,
timeout: 30000, // 设置超时时间
cache: false,
success: function(data) {
// 处理服务器返回的数据
console.log('接收到服务器返回的数据:' + data);
longPolling(); // 再次发送请求
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
if (textStatus == 'timeout') {
console.log('请求超时,重新发送请求');
longPolling(); // 再次发送请求
} else {
console.log('请求错误:' + errorThrown);
}
}
});
}
$(function() {
longPolling();
});
```
服务器端代码(使用PHP实现):
```php
header('Content-type: text/html; charset=utf-8');
// 连接MySQL数据库
$link = mysqli_connect('localhost', 'root', 'password', 'test');
if (!$link) {
die('连接MySQL数据库失败:' . mysqli_connect_error());
}
// 执行长轮询
while (true) {
// 查询MySQL数据库,判断是否发生变化
$result = mysqli_query($link, 'SELECT COUNT(*) FROM `table`');
$row = mysqli_fetch_row($result);
$count = $row[0];
if ($count > 0) {
// 如果发生变化,返回变化的信息
echo $count;
exit;
} else {
// 如果没有发生变化,等待一段时间再查询
sleep(1);
}
}
```
阅读全文