网站建设消费调查问卷,百度链接,宁波海曙网站建设,化妆品网站建设策略应用场景描述#xff1a; 我现在要做文章列表的批量生成#xff0c;使用AJAX将生成的进度情况展示给用户。首先要生成文章列表页#xff0c;然后在生文章内容详细页。 假如有10页每页10条记录#xff0c;就会10个文章列表页 总录数#xff08;100条记录#xff09; 我现在要做文章列表的批量生成使用AJAX将生成的进度情况展示给用户。首先要生成文章列表页然后在生文章内容详细页。 假如有10页每页10条记录就会10个文章列表页 总录数100条记录 110个页面也就是说这次要生成110个静态页面。 为了使用页面生成展示给用户的界面更生动让用户了解系统就在生成哪个页及完成情况我使用了jquery 的queue 及dequeue方法 下面是有问题的代码这些代码仅生列表不包括生详细内容部分 $.ajaxjsonext(run.ashx, actionarticlepagecountnavbarid navid, function (msg) { $(#w).data(pagecount, msg); //存放总页数var _fun []; //空的数组此处保存将要按序执行的AJAX请求代码BuildArticleListFunction(_fun,navid); //将要执行的AJAX请求封装成函数存入数组中。navid 为栏目ID$(#detail).append(准备数据完成。br);$(#detail).append(文章列表共 $(#w).data(pagecount) br);$(document).queue(ajax_article, _fun); //var _takeOne function () {$(document).dequeue(ajax_article);}; _takeOne(); //执行队列中的AJAX请求函数
});function BuildArticleListFunction(arrfun,navid) {pagecount $(#w).data(pagecount);for(var i1;ipagecount;i){arrfun.push(function () {//文章列表$.ajaxjsonext(run.ashx, actionarticlelistnavbarid navid pageindex (i), function (state) {if (state.success) {$(#detail).append(state.fn 创建成功。br /);$(#fn).text(状态 state.fn 创建成功。);var w (n * 100 / pagecount.length) %;alert(w);$(.statusbar).width(w).children(span).text(w);}$(document).dequeue(ajax_article);});});});
}这段代码看起来似乎没有什么问题但生成的只有最后一页总之就是不能生成所有列表页 问题出在上述代码中的 i每一次循环添加push到数组中i是一样的值尽管请求的次数一样但同时请求的参数也一样这就造成了上述的情况。解决问题的方法后台处理生总页数的时候不直接返回数字返回一个数组。如下代码public string getpagecount()
{ int i10; //此处可以通过数据获取总记录数在根据每页记录数计算得出总页数。 StringBuilder sb new StringBuilder();sb.Append([);int j 1;while (ji){sb.Append(j.ToString() ,);j;}sb.Remove(sb.Length - 1, 1).Append(]);return sb.ToString();
}这样js代码就得改了 function BuildStart(modeltype,navid) {$.getJSON(run.ashx, actionarticlepagecountnavbarid navid, function (msg) { $(#w).data(pagecount, msg);var _fun [];BuildArticleListFunction(_fun,navid);alert(_fun.length);$(#detail).append(准备数据完成。br);$(#detail).append(文章列表共 $(#w).data(pagecount).length br);$(document).queue(ajax_article, _fun);var _takeOne function () {$(document).dequeue(ajax_article);};_takeOne();});}function BuildArticleListFunction(arrfun,navid) {pagecount $(#w).data(pagecount);$.each(pagecount, function (i, n) {arrfun.push(function () {//文章列表$.getJSON(run.ashx, actionarticlelistnavbarid navid pageindex (n), function (state) {if (state.success) {$(#detail).append(state.fn 创建成功。br /);$(#fn).text(状态 state.fn 创建成功。);var w (n * 100 / pagecount.length) %;alert(w);$(.statusbar).width(w).children(span).text(w);}$(document).dequeue(ajax_article);});});});
}问题解决了但始终想不明白为什么这到底是怎么回子事呀。头大了。。 盼高手解惑!!!!! 转载于:https://www.cnblogs.com/hxling/archive/2011/04/27/2031149.html