// DOM元素获取
const loadingElement = document.getElementById('loading');
const errorElement = document.getElementById('error');
const hotListElement = document.getElementById('hotList');
const updateTimeElement = document.getElementById('updateTime');
// 页面加载完成后初始化
document.addEventListener('DOMContentLoaded', function() {
loadData();
// 每5分钟自动刷新数据
setInterval(loadData, 5 * 60 * 1000);
// 监听页面可见性变化,页面重新可见时刷新数据
document.addEventListener('visibilitychange', function() {
if (!document.hidden) {
loadData();
}
});
// 监听网络状态变化
window.addEventListener('online', loadData);
});
// 加载数据函数
async function loadData() {
try {
showLoading();
// 调用百度实时热搜API
const response = await fetch('https://60s.api.shumengya.top/v2/baidu/realtime');
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
if (data.code === 200 && data.data) {
renderHotList(data.data);
updateTime();
hideLoading();
} else {
throw new Error(data.message || '数据格式错误');
}
} catch (error) {
console.error('加载数据失败:', error);
showError();
}
}
// 渲染热搜列表
function renderHotList(hotData) {
if (!hotData || !Array.isArray(hotData)) {
showError();
return;
}
const listHTML = hotData.map((item, index) => {
const rank = index + 1;
const rankClass = rank <= 3 ? (rank === 1 ? 'top1' : 'top3') : '';
// 处理封面图片
const coverImg = item.pic ?
`` :
'';
// 处理描述信息
const description = item.desc || '';
// 处理热度值
const hotValue = item.hot || '';
// 处理链接
const linkUrl = item.url || '#';
return `
${description}
` : ''}