javascript - 如何使用 setTimeout 方法在 "x"秒后刷新 jTable?

标签 javascript html settimeout reload jquery-jtable

这是我得到的:

 <body>
        <div id="TableContainer"></div>
        <script type="text/javascript">
            $(document).ready(function() {
                $('#TableContainer').jtable({
                    title: 'title',
                    actions: {
                        listAction: 'JSONServlet',
                    },
                    ajaxSettings: {
                        type: 'POST',
                        dataType: 'json'
                    },
                    fields: {
                        Id: {
                            key: true,
                            list: false
                        },
                        Tag: {
                            title: 'Tag',
                            width: '40%'
                        },
                        V: {
                            title: 'V',
                            width: '10%'
                        },
                        S: {
                            title: 'S',
                            width: '10%'
                        },
                        Timestamp: {
                            title: 'Timestamp',
                            width: '30%',
                            create: false,
                            edit: false
                        }
                    }
                });
                $('#DeviceTableContainer').jtable('load');
      ///////     window.setTimeout("$('#DeviceTableContainer').jtable('reload')", 100);
            });

        </script>
    </body>

我正在使用jTable除了我的 setTimeout 方法之外,一切正常。在 Firebug 中,它看起来可以发出两次请求。我假设一次是正常请求,另一次是我的方法,但第二次之后就没有更多请求了。 我是网络开发新手,因此如果您能给我一个关于我做错了什么的快速解释,那也会有所帮助。

最佳答案

如果您希望它每 x 秒刷新一次,那么您需要 setInterval 或在 setTimeout 调用的函数中再次调用 setTimeout

var timerID = setInterval("$('#DeviceTableContainer').jtable('reload')", 100);

或者

var timerID = null;
function doReload() {
     $('#DeviceTableContainer').jtable('reload');
     timerID = setTimeout(doReload,100);
}

doReload();

使用timerID保存对计时器的引用,并在需要时取消计时器,clearTimeout(timerID)clearInterval(timerID)

虽然每 0.1 秒调用一次,但由于该数字以毫秒为单位,因此对于进行 ajax 调用来说速度相当快。

关于javascript - 如何使用 setTimeout 方法在 "x"秒后刷新 jTable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17321691/

相关文章:

javascript - jquery 替换 html 和 javascript 函数

javascript - 是否可以使用 Google-Chrome-Frame 来节省开发时间/金钱,使应用程序适用于 IE?

javascript - Vue 与所有(或大多数)组件共享外部库

javascript - Parent-Iframe postMessage通信

javascript - JQuery获取 'id'属性

html - 如何处理同一元素的 css 文件中的两个元素选择器?

javascript - 为 div 指定点击样式

For 循环中的 JavaScript setTimeout 问题

javascript - Vue 方法中的 setTimeout 不起作用

javascript - 如何设置ajax超时?