页面切换请求接口优化
站群显示各站最新文章信息切换请求接口优化!
第一次制作出来的时候,发现每次点击切换则请求一次接口,不管是否请求过,导致可以频繁请求同一份数据,而且当前状态时再次点击还可以重复请求,因此在不太合理而且增加服务器压力并且不节流!
针对以上问题,主要优化为两点;
第一:当前状态是再次点击则不能重复请求数据;
第二:请求过的数据则记录下来,再次点击是从历史中获取,不再请求服务器接口。
通过调整后的代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | var getInfo=function(){ var msg =new Object; var set =function(obj,msg){ var listHtml=""; var listInfo = JSON.parse(msg); for (var i=0; i<listInfo.length; i++){ listHtml += '<li><span class="date">'+listInfo[i].PublishTime+'</span><a href=' + listInfo[i].ContentRouteUrl + ' target="_blank" title="' + listInfo[i].Title + '">' + listInfo[i].Title + '</a></li>' } if(listHtml){ $("#"+obj).html(listHtml) } else{ $("#"+obj).html("<li class='noData'>暂无信息</li>"); } }; var get=function(obj,siteid){ $("#"+obj).html("<li class='noData'>加载中…</li>"); var result=msg[obj+siteid]; if(!result){ var parames={ Count:10, SiteId:siteid, DisplayDateTime:"yyyy-MM-dd" }; $.ajax({ url: apiUrl, type: 'post', data: { partialViewName: "站点-最新文章列表-json格式", parameters: JSON.stringify(parames) }, success: function (res) { result=res.html; msg[obj+siteid]=result; set(obj,result); } }); } else{ set(obj,result); } }; return get;}();$(".js-tab li").click(function(){ var obj=$(this).parent("ul").attr("data-id"); var siteid=$(this).attr("data-site"); if(siteid){ if(!$(this).hasClass('on')){ getInfo(obj,siteid); } } else{ $("#"+obj).html("<li class='noData'>暂无信息</li>"); } $(this).siblings("li").removeClass("on"); $(this).addClass("on");});function setFisrtInfo(obj){ $(obj).each(function(index) { var tabObj=$(this).find(".js-tab"); var obj=tabObj.attr("data-id"); var siteid=tabObj.children("li").eq(0).attr("data-site"); tabObj.children("li").eq(0).addClass("on");//给tab第一项添加类名 getInfo(obj,siteid); });}//默认加载第一项内容$(document).ready(function() { setFisrtInfo("#content .box");}); |
效果如下:注意请求的AjaxPartial数量,第一次点击切换是请求接口获取数据,第二次再点击该站点进行切换时,直接从缓存中获取数据,不需要重复请求接口;

