在不同的时间重新加载多个DIV

时间:2019-03-25 18:52:24

标签: javascript

我有一个PHP + HTML + CSS应用程序,该应用程序具有主仪表板,其中包含多个行和列(称为小部件)。

小部件为DIV,并设置了唯一的ID和一些CSS类。喜欢:

<div class="col-2 colstav" id="5">Test 5 velikost 2</div>
<div class="col-6 colstav" id="32">Test 32 velikost 6</div>
<div class="col-4 colstav" id="7">Test 7 velikost 4</div>

在PHP变量中,在我需要重新加载DIV的文件(内容)之后,我已经为每个ID存储了时间(以毫秒为单位)。

在PHP中,我有:

$column[5]["file"] = widget5.php;
$column[5]["refresh"] = 4000;
$column[32]["file"] = widget32.php;
$column[32]["refresh"] = 2000;
$column[7]["file"] = widget7.php;
$column[7]["refresh"] = 1000;

我找不到通过PHP变量及时重新加载DIV内容的Javascript函数。

我找到了这个(http://jsfiddle.net/YVB9F/),但是我无法更新此JS代码:(。

规范/修改: 我需要这样的JS代码:

<script>
var time_div_5 = 4000;
var time_div_32 = 2000;
var time_div_7 = 1000; 

function content(content_file,div_id){
load(content_file) to target(div_id)
}

every(time_div_5){do: content("wg/widget5.php","5")}
every(time_div_32){do: content("wg/widget32.php","32")}
every(time_div_7){do: content("wg/widget7.php","7")}
</script>

我知道如何将PHP中的变量添加到脚本中。

经过一番研究后,我有了此脚本,但无法正常工作:

<script>
function reload_div(file,iddiv){
$(iddiv).load(file);
}

setInterval(reload_div("widgets/widget1.php",1), 1000);
setInterval(reload_div("widgets/widget2.php",2), 4000);
</script>

<div id="1"></div>
<div id="2"></div>

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

如评论中的denmch所述,您应该使用AJAX进行异步请求。您尝试实现的方法不是一个好习惯。

此外,我可以看到您正在尝试通过jQuery.load()从文件中加载内容,但是您的id选择器似乎有误,reload_div("widgets/widget1.php",1)将尝试查找与选择器$(1)匹配的元素,并且可能失败。将#字符附加到iddiv函数内的reload_div参数中。

答案 1 :(得分:1)

我将通过为每个小部件生成以下代码来解决此问题:

git rm --cached appsettings.json

在PHP中:

<script>setInterval(function() {$('#1').load('widgets/_blank.php');},5000)</script>

及其工作原理,但我认为,不是最有效,最简洁的方法:D。