AJAX 轮询代码示例PHP
时间: 2024-12-06 08:23:56 浏览: 13
AJAX轮询是一种在Web应用中无刷新地获取服务器数据的技术,常用于实现实时更新或长连接。在PHP中,可以结合JavaScript和AJAX实现简单的轮询。下面是一个基本的PHP和JavaScript轮询代码示例:
```php
// PHP 服务器端处理(假设我们有一个检查更新的函数)
<?php
function checkForUpdates() {
// 这里模拟数据库查询或其他任务,返回新的数据或者false表示无新数据
$newData = getLatestDataFromDatabase(); // 假设这是一个函数
if ($newData) {
return json_encode($newData);
} else {
return false;
}
}
// 设置超时时间
$timeout = 5000; // 单位毫秒,这里设置5秒
while (true) {
sleep(1); // 每隔1秒检查一次
$response = @file_get_contents('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); // 发送GET请求到服务器
if ($response === false || $response === 'false') { // 如果无响应或服务器返回无新数据
continue; // 继续下一轮循环
}
$data = json_decode($response, true); // 解析JSON响应
// 在这里处理接收到的数据
}
?>
```
```javascript
// JavaScript 客户端AJAX轮询
$(document).ready(function() {
function pollServer() {
$.ajax({
url: "checkForUpdates.php", // 调用上面的PHP脚本
type: "GET",
dataType: "json",
success: function(data) {
if (data !== false) {
// 数据有变化,处理新数据
handleNewData(data);
} else {
setTimeout(pollServer, <?php echo $timeout; ?>); // 无新数据,等待一段时间再尝试
}
},
error: function() {
setTimeout(pollServer, <?php echo $timeout; ?>); // 请求失败,再次尝试
}
});
}
pollServer(); // 开始轮询
});
```
阅读全文