laravel-admin自动刷新自定义时间
/* ====================== 终极版:无限自动刷新 START ====================== */
// 1. 顶部工具栏
$grid->tools(function ($tools) {
$tools->append('
<div class="pull-left" style="margin:0 15px;display:flex;align-items:center;gap:5px;">
<input type="number" id="refresh_sec" placeholder="刷新秒数" min="1"
class="form-control input-sm" style="width:90px;">
<button id="start_refresh" class="btn btn-sm btn-success">启动刷新</button>
<button id="stop_refresh" class="btn btn-sm btn-warning">停止刷新</button>
</div>
');
});
// 2. JS逻辑(修复无限刷新)
$grid->footer(function () {
echo <<<JS
<script>
let autoRefreshTimer = null;
// 页面加载时,自动读取本地存储的刷新时间,重启定时器(核心!解决只刷新一次的问题)
window.onload = function() {
const saveSeconds = localStorage.getItem('auto_refresh_seconds');
if (saveSeconds && saveSeconds >= 1) {
startRefresh(saveSeconds);
}
}
// 启动刷新函数
function startRefresh(seconds) {
if (autoRefreshTimer) clearInterval(autoRefreshTimer);
// 保存秒数到本地存储(刷新页面后不丢失)
localStorage.setItem('auto_refresh_seconds', seconds);
// 无限循环定时器
autoRefreshTimer = setInterval(function() {
location.reload();
}, seconds * 1000);
}
// 按钮:启动
$('#start_refresh').on('click', function () {
const seconds = $('#refresh_sec').val();
if (!seconds || seconds < 1) {
alert('请输入大于0的数字!');
return;
}
startRefresh(seconds);
alert('已开启 ' + seconds + ' 秒无限自动刷新');
});
// 按钮:停止
$('#stop_refresh').on('click', function () {
if (autoRefreshTimer) {
clearInterval(autoRefreshTimer);
autoRefreshTimer = null;
}
// 清除本地存储
localStorage.removeItem('auto_refresh_seconds');
alert('已停止自动刷新');
});
</script>
JS;
});
/* ====================== 终极版 END ====================== */
最近访问时间:2026-03-27 16:31:05