laravel-admin 无感知刷线自定义时间设置
xuexi 2026-03-27 13:30:19 发表在:PHP 查看数:6
/* ====================== 终极零报错·纯AJAX无感刷新 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="2" 
               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:纯AJAX刷新表格(零依赖·无任何报错)
$grid->footer(function () {
    echo <<<JS
<script>
let autoRefreshTimer = null;

// 页面加载自动恢复刷新
$(function() {
    const saveSeconds = localStorage.getItem('auto_refresh_seconds');
    if (saveSeconds && saveSeconds >= 2) {
        startRefresh(saveSeconds);
    }
});

// ✅ 核心:纯AJAX局部刷新表格数据(页面完全不动,无任何报错)
function refreshTable() {
    // 直接请求当前页面,提取表格内容替换(全版本通用)
    $.get(window.location.href, function(data) {
        var newTable = $(data).find('.box-body.table-responsive');
        $('.box-body.table-responsive').html(newTable.html());
    });
}

// 启动刷新
function startRefresh(seconds) {
    stopRefresh();
    localStorage.setItem('auto_refresh_seconds', seconds);
    // 定时AJAX刷新表格
    autoRefreshTimer = setInterval(refreshTable, seconds * 1000);
}

// 停止刷新
function stopRefresh() {
    if (autoRefreshTimer) {
        clearInterval(autoRefreshTimer);
        autoRefreshTimer = null;
    }
    localStorage.removeItem('auto_refresh_seconds');
}

// 按钮事件
$('#start_refresh').click(function() {
    const sec = $('#refresh_sec').val();
    if (!sec || sec < 2) {
        alert('请输入≥2的秒数!');
        return;
    }
    startRefresh(sec);
    alert('已开启 ' + sec + ' 秒无感自动刷新');
});

$('#stop_refresh').click(function() {
    stopRefresh();
    alert('已停止无感刷新');
});
</script>
JS;
});
/* ====================== 终极零报错版 END ====================== */
最近访问时间:2026-03-27 16:31:07
知识库:430条鸣谢:TAY  备案号:蜀ICP备2024090044号