gpt4 book ai didi

javascript - 如何输出 javascript 并使 sleep 或 wait 在 foreach 循环中工作

转载 作者:行者123 更新时间:2023-12-03 06:02:04 29 4
gpt4 key购买 nike

我有一个 foreach 循环,它使用变量数组通过 ajax 调用生成动态 javascript。假设我有一个包含 10 个变量的数组,需要创建 10 个不同的 JS 脚本。这些脚本不应立即执行,它们应至少有 1-2 秒的延迟。但是,我无法通过 sleep 或等待来实现这一点。这是我的代码:

<?php
foreach ($one as $two) {
$somevariable = $two['sth'];
?>

<script type="text/javascript">
$( document ).ready(function() {
var somevariable = <?php echo json_encode($somevariable); ?>;
// JS code with ajax call, using somevariable
});
</script>

<?php
sleep(2); // doesn't work, everything is executed at once
wait(2); // doesn't work, everything is executed at once
}
?>

我做错了什么?如果我回显脚本,代码会工作吗?我想避免这种情况,因为 JS 代码相当长且复杂。

最佳答案

您可以尝试这样的操作:首先,从您的 php 代码形成一个 javascript 数组。

<?php
foreach ($one as $two) {
$somevariable[] = "'".json_encode($two['sth'])."'";
}
$jsArray = '['.implode(',',$somevariable).']';
?>

然后将数组传递给 JavaScript 并以 2 秒的间隔运行循环。

<script type="text/javascript">
$( document ).ready(function() {
var somevariablearray = <?php echo $jsArray; ?>;
var ln = somevariablearray.length();
for (i = 0; i < ln; i++) {
var somevariable = somevariablearray[i];
setTimeout(function(){
console.log("Wait 2 sec before next call");
}, 2000);
// JS code with ajax call, using somevariable
}
});
</script>

代码未经测试,可能无法按预期工作,但是,只是为了给您一个总体思路。

关于javascript - 如何输出 javascript 并使 sleep 或 wait 在 foreach 循环中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39713524/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com