gpt4 book ai didi

javascript - ajax 调用循环 - 访问循环计数器?

转载 作者:行者123 更新时间:2023-12-02 19:46:00 25 4
gpt4 key购买 nike

我被困在这里,任何帮助将不胜感激。

我有一个项目列表框,我想通过 AJAX(调用 Web 服务)检索列表中每个项目的数据。需要根据调用数据的行来操作检索到的数据。如果我传入 row 参数,它的值始终比行数大 1。有没有办法传入 ajax 调用发起时的值?

    var NumRows = list.options.length;
for ( var row = 0; row < NumRows; row ++ )
{
var Value = list.options[row].value;
var xmlHttpObj = CreateXmlHttpRequestObject();
if ( xmlHttpObj != null )
{
xmlHttpObj.open( "POST", "Async.ashx?arg1=GetPhysicalPathInfo&arg2=" + Value, true );
xmlHttpObj.onreadystatechange = function ( row )
{
// code that needs to know what row we were from
}
}
xmlHttpObj.send();
}

最佳答案

创建一个具有自执行函数的闭包:

var NumRows = list.options.length;
for ( var row = 0; row < NumRows; row ++ )
{
!function(row) {
var Value = list.options[row].value;
var xmlHttpObj = CreateXmlHttpRequestObject();
if ( xmlHttpObj != null )
{
xmlHttpObj.open( "POST", "Async.ashx?arg1=GetPhysicalPathInfo&arg2=" + Value, true );
xmlHttpObj.onreadystatechange = function ()
{
// code that needs to know what row we were from
}
}
xmlHttpObj.send();
}(row);
}

当然,您从循环发出 AJAX 请求是一个重大危险信号。这是非常低效的;考虑进行一次调用并从服务器返回一个数组。

关于javascript - ajax 调用循环 - 访问循环计数器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9856094/

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