1.问题解释
要实现一个Web定时刷新表格内容功能,最终采用JavaScript的setInterval()函数实现。
下面是具体代码:
var tbodyObject = {}; $(function() { tbodyObject = $("#sequence_tbody"); flushSeqTableInMainSeq(); setInterval("flushSeqTableInMainSeq()", 10000); }); function flushSeqTableInMainSeq(){ flushSeqTable(tbodyObject); }
flushSeqTable()函数实现的大概内容:
经测试,在十来分钟后,请求响应时间明显变长,慢慢地突破1秒,慢慢的突破10秒,以至于达到两分钟!且响应请求变慢的概率逐渐增加。function flushSeqTable(tbodyObject){ var url = host + apiInit; tbodyObject.html(""); $.get(url, function(data){ var html.= "XXXXX"; tbodyObject.append(html); });
下面是一个半小时内的请求截图,时间从大到小排序:
可以发现,这种定时刷新基本上是不可用的。
*************************下面是第二天的测试***************************
过了一天,同时开了十几个页面同时刷新,结果竟然大跌眼镜--相应延时的情况大大减少,且没有出现之前极端的两分钟情况。下面是六个多小时的测试截图:
i)
ii)
所有的刷新界面有一半情况是i),另一半情况是ii),可以看出它们之间的差异还不小。
i)的最大延时是ii)的一半左右,而且延时的次数要比ii)少;而且正好这样的情况基本对半开,有点意思。
红色的错误是:
延时请求的具体情况:
HTTP请求成功,并没有什么延时之类的错误提示。
下面是请求时间的分布图:
下面是九个多小时后的测试截图: