Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为增量页面加载设置超时_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 为增量页面加载设置超时

Javascript 为增量页面加载设置超时,javascript,jquery,ajax,Javascript,Jquery,Ajax,请参阅下面的代码: function GetSQLTable() { var str = $("#<%=fieldGroupReferences.ClientID%>")[0].value var res = str.split(","); $("#LoadingImage").show(); $("#LoadingImage2").show(); for (var i = 0; i < res.

请参阅下面的代码:

function GetSQLTable() {
        var str = $("#<%=fieldGroupReferences.ClientID%>")[0].value
        var res = str.split(",");
        $("#LoadingImage").show();
        $("#LoadingImage2").show();

        for (var i = 0; i < res.length; i++) {
                alert(res[i])
                (function(i,res) {
                    setTimeout(function (i,res) {
                        alert(res[i])
                        GetSQLTable2(i, res.length,res)
                    }, 0)
                })(i,res)
            }
    }
函数GetSQLTable(){ var str=$(“#”)[0]。值 var res=str.split(“,”); $(“#加载图像”).show(); $(“#加载图像2”).show(); 对于(变量i=0;i 第一个警报显示正确的信息。第二个alter错误(未定义)。为什么会这样

另外,我被告知,当有大量AJAX请求时,这种方法应该可以阻止网页崩溃(这是一种增量页面加载)。但是,我不明白在AJAX请求之间设置零秒超时会有什么帮助。GetSQLTable2执行一个AJAX调用


fieldGroupReferences最多可以包含50个值。

此jsbin链接应该可以回答您的问题

当你打电话的时候

setTimeout(function(res,i){
//using res and i here
},0)
不使用res,i作为函数参数,根据闭包逻辑res和i默认在函数内部可用。如果您使用res,那么您正在创建一个具有新参数的函数,这些参数的值不会被发送到。 所以应该是这样

 setTimeout(function(){
    //using res and i here
    },0)
我相信当你调用setTimeout(function(){},0)时,setTimeout的格式是这样的

function setTimeout(callback,time){
   after-time{
      callback(); //observe here we are not passing anything as arguements, i am not sure but setTimeout may pass its own values like how $.on passes 'events' to callbacks
   }    
}
要回答第二部分设置0秒的帮助,
通过设置0秒,用外行的话来说,您正在以异步方式继续流!!!因此,无论接收到多少ajax响应,它们都不会相互阻塞,因为代码是在$(“#”)中异步求解的

[0]id永远不是数组,因此不需要[0],即$(“#”)就可以了!!!没有,;在setTimeout、alert、GETSQLTable和匿名函数调用之后,我不同意“当有大量AJAX请求时网页崩溃”,请参阅我的AJAX tester@Wishy JQuery将返回一个id数组,因此需要[0]访问其中一个元素的值。也
在javascript中不是必需的,但它们确实会提高可读性,特别是在有匿名函数的情况下。啊,对了。这是没有意义的,因为ID总是用于一个元素。关于是的,我知道,但强制执行总是好的。