在微信小程序中处理轮询 AJAX 请求,可以使用 `setInterval` 函数来定时执行 AJAX 请求。以下是一个示例代码,展示了如何使用 `setInterval` 和 `wx.request` 来实现轮询请求:
```javascript
// 定义一个函数来执行 AJAX 请求
function fetchData() {
wx.request({
url: 'https://your-api-endpoint.com/data', // 替换为你的 API 端点
success: function(res) {
console.log('数据获取成功:', res.data);
// 处理返回的数据
},
fail: function(err) {
console.error('数据获取失败:', err);
},
complete: function() {
// 请求完成后,继续轮询
setTimeout(fetchData, 5000); // 5 秒后再次执行 fetchData
}
});
}
// 在页面加载时开始轮询
Page({
onLoad: function() {
fetchData(); // 页面加载时立即执行一次 fetchData
}
});
```
在这个示例中,`fetchData` 函数使用 `wx.request` 发送 AJAX 请求,并在请求成功后使用 `setTimeout` 设置一个 5 秒的延时,以便在请求完成后继续执行下一次请求。这样可以确保请求能够持续不断地进行轮询。
需要注意的是,`setInterval` 会持续运行,直到页面被关闭或用户离开当前页面。如果需要在页面关闭或用户离开时停止轮询,可以在页面的 `onUnload` 生命周期函数中清除定时器:
```javascript
Page({
onLoad: function() {
this.interval = setInterval(fetchData, 5000); // 保存定时器 ID 以便清除
},
onUnload: function() {
clearInterval(this.interval); // 清除定时器
}
});
```
通过这种方式,可以确保轮询请求在页面关闭或用户离开时停止,避免不必要的资源消耗。