gpt4 book ai didi

javascript - 如何使用 ID 循环 JavaScript 函数?

转载 作者:行者123 更新时间:2023-12-01 00:34:33 26 4
gpt4 key购买 nike

我有一个用 PHP 生成的矩阵表。我想根据 DNS 调用的结果显示“检查”或“交叉”。该表矩阵可以包含超过 200.000 个单元格。

我尝试将所有 PHP 代码放在同一页面上,但是如果有很多 DNS 调用要做,PHP 就会超时。我转向了ajax。在每个单元格内添加一个 DIV,并放置调用第二个 PHP 的 ajax 代码,该代码将执行 DNS 查询。这效果很好,但在 5000-6000 个请求之后,某些单元格未填充。我的猜测是因为该脚本试图同时调用所有单元格。

这是一种让 ajax 一次对每个单元格进行调用的方法吗?

我有这个 PHP 代码:

$body .= '
<script type="text/javascript">
';

foreach (getEachIpInRange($cidr) as $IP) {
foreach ($rbls as $rbl) {
$divid++;
$body .= ' function updatediv' . $divid . '() {
$.ajax({
type: \'get\',
url: \'verify.php?ip=' . $IP . '&dns=' . $rbl . '\',
data: $(self).serialize(),
success: function(data) {
$("#div' . $divid . '").html(data).text();
}
})
}
';
}
}

$body .= ' </script>
';

生成以下代码:

  <script type="text/javascript">
function updatediv1() {
$.ajax({
type: 'get',
url: 'verify.php?ip=123.123.123.123&dns=host.domain1.tld',
data: $(self).serialize(),
success: function(data) {
$("#div1").html(data).text();
}
})
}
function updatediv2() {
$.ajax({
type: 'get',
url: 'verify.php?ip=234.234.234.234&dns=host.domain2.tld',
data: $(self).serialize(),
success: function(data) {
$("#div2").html(data).text();
}
})
}
function updatediv3() {
$.ajax({
type: 'get',
url: 'verify.php?ip=345.345.345.345&dns=host.domain3.tld',
data: $(self).serialize(),
success: function(data) {
$("#div3").html(data).text();
}
})
}
function updatediv4() {
$.ajax({
type: 'get',
url: 'verify.php?ip=456.456.456.456&dns=host.domain4.tld',
data: $(self).serialize(),
success: function(data) {
$("#div4").html(data).text();
}
})
}

最好的方法是使用一个函数来逐个更新每个单元格。但如果不可能,我如何在所有函数之间循环并运行它们,在每个函数之间给出 25 毫秒或 30 毫秒的间隔以避免超时?

最佳答案

请不要为每个单元格生成一个函数;那是臃肿的。只需创建一个函数,该函数接受一个数字作为参数,并使用它来进行正确的调用、选择正确的单元格等。

function updatediv(n) {
const ipPart = `${n}${n+1}${n+2}`;
$.ajax({
type: 'get',
url: `verify.php?ip=${ipPart}.${ipPart}.${ipPart}.${ipPart}&dns=host.domain${n}.tld`,
data: $(self).serialize(),
success: function(data) {
$(`#div${n}`).html(data).text();
}
})
}

从那里,您可以执行一个简单的 for 循环并为每个 n 值调用该函数。

关于javascript - 如何使用 ID 循环 JavaScript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58239018/

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