日期:2014-05-16  浏览次数:20751 次

js中预载入数据
如代码所展示,想要:
存放当前页面记录、下一页记录、上一页记录。但是运行时出了 success: function(result){},list便为空。
在js中,该赋值是什么类型呢?以c++为例,只是将地址赋值给list了吗,所以出了function,对象清空,于是所指向的也为空?
有没有什么办法?另外,有没有必要?

JScript code

    var nowList;
    var nextList;
    var lastList;

    function loadNext(isNext)
    {
        var which;
        if(isNext)
        {
            which = String(page + 1);
        }
        else
        {
            which = String(page - 1);
        }
        alert(which);
        $.ajax({
        url: "ajax/getArticle.ashx",
        type: "get",
        datatype: "xml",
        data:{pagesize:"10",page:which,sort:"desc"},
        success: function(result)
        {
            if(isNext)
            {
                nextList = $(result).find("test");
            }
            else
            {
                lastList = $(result).find("test");
            }
        },
        error:function(xq,ts,t)
        {
            loadNext(isNext);
        }
        });
    }
    function next()
    {
        page++;
        lastList = nowList;
        loadNext(true);
        $("#articleList").text("");
        showList();
    }



------解决方案--------------------
这个是异步的问题 和什么地址啥的没关系
楼主的代码若在ajax外部alert下那三个list 都是undefined 这是ajax异步导致的
解决方法就是在回调函数中改变了list值后 接着在后边做余下逻辑的处理