js实现刷新效果
实现页面刷新
使用location.reload()方法可以强制刷新当前页面。默认情况下会从浏览器缓存加载,若需要强制从服务器重新加载,可传入参数true。
// 基础刷新(可能从缓存加载)
location.reload();
// 强制从服务器重新加载
location.reload(true);
定时自动刷新
通过setTimeout或setInterval实现定时刷新,以下代码展示5秒后自动刷新:
setTimeout(() => {
location.reload();
}, 5000);
按钮触发刷新
为按钮添加点击事件监听,点击时执行刷新操作:
<button id="refreshBtn">点击刷新</button>
<script>
document.getElementById('refreshBtn').addEventListener('click', () => {
location.reload();
});
</script>
局部刷新(AJAX)
使用fetch或XMLHttpRequest实现局部数据刷新,避免整页重载:
async function refreshData() {
const response = await fetch('api/data');
const data = await response.json();
document.getElementById('content').innerHTML = data.content;
}
// 每10秒刷新一次数据
setInterval(refreshData, 10000);
监听键盘快捷键
通过键盘事件监听实现快捷键刷新(如F5):
document.addEventListener('keydown', (e) => {
if (e.key === 'F5') {
e.preventDefault();
location.reload();
}
});
历史记录导航
使用historyAPI实现无刷新跳转,适合单页应用:
// 前进或后退时触发
window.addEventListener('popstate', () => {
// 执行动态内容更新逻辑
});
// 修改URL但不刷新页面
history.pushState({}, '', '/new-url');
注意事项
- 强制刷新(
reload(true))可能导致服务器负载增加 - 高频刷新可能影响用户体验
- 单页应用推荐优先使用AJAX局部更新
- 移动端需考虑触摸事件替代键盘快捷键







