JS中我用到的setInterval

项目需求是这样的:
点击行 每隔一段时间刷新该行下的数据 切换点击行的时候也要刷新对应行的数据。

JS中我用到的setInterval_第1张图片
点击上面的行,每隔一段时间刷新竞价

先看下这个方法怎么用的:

 var setTime = window.setInterval(function() {
这里放要执行的方法!
}, 5000);
每次用完这个方法的时候 都应该清除
clearInterval(setTime )
这两个是成对出现的,clearInterval 函数中的参数是 setInterval函数方法的标识。

下面问题来了,怎么能够使我每次换行的时候,刷新的是不同行的数据,并且当我离开这个页面的时候 停止刷新,因为如果不停的刷新,它就会不停的请求 ,浪费资源。
我的处理方式:
首先,要让我换行的时候,刷新对应行的数据,那么必须换行的时候清除上一个setInterval
每次点击行的时候清除这个setInterval
第二点 ,怎么才能让我离开页面的时候也能够清除这个setInterval呢?而且必须是同一个setInterval。解决办法,把这个setInterval的标识赋给session
代码:

//子查询 这个地方要做实时查询的
$("body").on("click", ".page-biding-center-management-bidding #J_inandoutprice tr", function() {
$(".page-biding-center-management-bidding [name=price_biding]").attr("status", "1");
if ($.kingdom.getParameter("setTime")) {
clearInterval($.kingdom.getParameter("setTime"));//这里清除
}
status = $(this).data("status");
lotid = $(this).data("lotid");
if (status == "02") {
$(".page-biding-center-management-bidding [name=price_biding]").attr("href", "/index.html#common-page");
$(".page-biding-center-management-bidding [name=price_biding]").attr("data-linkto", "action-centermanagement_actionprice");
}
// change = lotid;
var params = {};
params.lotid = $(this).data("lotid") + "";
if ($(this).data("status") == "02" || $(this).data("status") == "03") {
App.blockUI({
boxed: true,
message: "查询中..."
});
showContent.getactionInfoChidren(params)
var setTime2 = window.setInterval(function() {//这里是刷新任务
App.blockUI({
boxed: true,
message: "查询中..."
});
showContent.getactionInfoChidren(params);
}, 5000);
$.kingdom.setParameter("setTime", setTime2);//这里赋给session
if (showContent.len == "0") {
clearInterval($.kingdom.getParameter("setTime"));
}

            } else {
                App.unblockUI();
                toastr.info("竞价状态为竞价中,已结束才能查询实时报价");
                return;
            }

        })

上面的$.kingdom.setParameter 是我们框架封装的set 和get session
下面是方法
setParameter: function(key, value) {
value = value;
window.sessionStorage.setItem(key, value);
return;
}
getParameter: function(key) {
var value = window.sessionStorage.getItem(key);
if (!value || value == '') {
return '';
}
return value;
}


这样一来就好办了,只要在你们单页面项目中 路由跳转的时候清除就行了!

大家周末愉快!!!

你可能感兴趣的:(JS中我用到的setInterval)