此代码的目的是在1秒或5秒的等待时间后刷新页面,具体取决于随机变量。但是,下面的代码可以使它要么在每隔1秒的等待时间后刷新一次,要么在每隔5秒的等待时间后刷新一次。
如何使刷新等待时间为每次刷新1秒或5秒?
public <T> T rndInx(T[] array) {
int index = (int)(Math.random() * array.length);
return array[];
}
答案 0 :(得分:1)
问题是,当您将iframe
指向当前文档时,包含iframe
的文档仅被加载一次(这就是为什么您看到相同的间隔被使用的原因以及以上),并且当iframe
在其内部加载相同文件时,其为interval生成的值与控制iframe
的加载不同。
我认为您应该对setTimeout
中的当前文件进行AJAX请求。这样,您只需再次执行AJAX调用即可处理服务器错误。这样会更简单。否iframe
。
(function ($) {
'use strict';
// Store possible delay values in an array
var possibleDelays = [1000, 5000];
function reload() {
$.ajax(location.href)
.done(function () {
$("h1").text(new Date().toLocaleTimeString());
// Success! Do it again!
setTimeout(reload, possibleDelays[Math.round(Math.random())]);
}).fail(reload); // When there's an error, try again
}
// Initiate the process with an interval that is generated right here.
setTimeout(reload, possibleDelays[Math.round(Math.random())]);
})(jQuery);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1></h1>