• 分页缓存


    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>留言板</title>
    <meta name="description" content="">
    <meta name="keywords" content="">
    <link href="" rel="stylesheet">
    <script src="js/jquery.min.js" type="text/javascript"></script>
    <style>
    	div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,blockquote,p,body{
    	padding:0;margin:0;}
    	ul,li{list-style:none;}
    	img{border:0 none;}
    	a{ text-decoration:none; color:#666666; font-family:"微软雅黑";}
    	h1, h2, h3, h4, h5, h6 {font-size: 100%;font-weight: normal;}
    	body{ font-family:"微软雅黑"; font-size:14px; color:#595959; line-height:24px; background:#fff;}
    	.w1100{ 1100px; margin:0 auto;}
    	.clearfix:after { visibility:hidden; display:block; font-size:0; content:" "; clear:both; height:0;} 
    	.clearfix { zoom:1;}
    
    	/*样式*/
    	.msg-dl dd{
    		float: left;
    		 120px;
    		margin-top: 10px;
    		border-top: 1px solid #666666;
    		border-left: 1px solid #666666;
    		border-bottom: 1px solid #666666;
    		text-align: center;
    	}
    	.msg-dl dd:last-child{
    		border-right: 1px solid #666666;
    		300px;
    	}
    	#msgbox{
    		 1200px;
    		margin:30px 0 0 30px;
    		position: relative;
    	}
    	#msgbox h2{
    		font-size: 16px;
    		text-align: left;
    	}
    	.msg-ul li{
    		display:flex;
    	}
    	.msg-ul{
    		height: 280px;
    	}
    	.msg-ul li span{
    		 120px;
    		border-left: 1px solid #666666;
    		border-bottom: 1px solid #666666;
    		text-align: center;
    		line-height: 25px;
    		height: 25px;
    	}
    	.msg-ul li span:nth-of-type(5){
    		200px;
    	}
    	.msg-dl dd:nth-of-type(5){
    		200px;
    	}
    	.msg-ul li span:nth-of-type(6){
    		200px;
    	}
    	.msg-dl dd:nth-of-type(6){
    		200px;
    	}
    	.msg-ul li span:last-child{
    		border-right: 1px solid #666666;
    		300px;
    	}
    	#msgbox h3{
    		background: red;
    		color: #FFF;
    		position: absolute;
    		 25px;
    		font-size: 12px;
    		padding:0 5px;
    		top: 100px;
    		left: 0;
    	}	
    	ul.pagination {
    		display: inline-block;
    		padding: 0;
    		margin: 0;
    	}
    	
    	ul.pagination li {display: inline;}
    	
    	ul.pagination li a {
    		color: black;
    		float: left;
    		padding: 8px 16px;
    		text-decoration: none;
    		border: 1px solid blue;
    		border-radius:3px;
    	}
    	.active{
    		background-color: #7FFFAA;
    	}
    	.pagination li{
    		20px;
    		height:20px;
    		border:1px solid #000;
    		padding:3px 8px;
    		cursor:pointer;
    		margin: 0 3px;
    	}
    	.pager{
    		margin-top:20px;
    	}
    	.pager .page-active{
    		background:red;
    		color:#fff;
    	}
    </style>
    </head>
    <body>
    	<div id="msgbox">
    		<h2>网站留言</h2>
    		<dl class="msg-dl clearfix">
    			<dd>序号</dd>
    			<dd>姓名</dd>
    			<dd>电话</dd>
    			<dd>项目名称</dd>
    			<dd>邮箱</dd>
    			<dd>留言内容</dd>
    			<dd>时间</dd>
    		</dl>
    		<ul class="msg-ul clearfix">
    		 </ul>
    		 <div class="pager">
    			<ul class="pagination">
    				
    			</ul>
    		 </div>
    	</div>
        <script>
    
    
    
    
    
    		$(function(){
    			$.ajax({
    				type: "GET",
    				url: "./fetch.php",
    				success: function (res) {
    					var data = JSON.parse(res);
    					createLi(data.pagecount);
    				}
    			});
    
    
    
    			//获取数据
    			getData();
    			function getData(page){
    				var page = page || 1;
    				$.ajax({
    					type: "GET",
    					url: "./fetch.php",
    					data: {"pagenow":page},
    					success: function (res) {
    						var data = JSON.parse(res);
    						//console.log(data.pagecount);
    						cache.set(page,data.newarr);
    						renderData(data.newarr);
    					}
    				});
    			};
    
    			//闭包
    			var cache = cacheData();
    			function cacheData(){
    				var cache = {}; //声明一个缓存池变量
    				return{
    					set:function(page,doc){
    						cache[page] = doc; // 缓存
    					},//存储新数据
    					get:function(page){
    						if(page in cache){
    							renderData(cache[page])
    							//console.log("第"+page +"页面已经缓存,无需再次请求");
    						}else{
    							getData(page);
    						}
    					}//读取数据
    				}
    			};
    			//渲染页面
    			function renderData(data){
    				var msgUl = document.querySelector(".msg-ul");
    				var str = "";
    				data.forEach((item) => {
    					str +=`<li>
    						<span>${item.id}</span>
    						<span>${item.name}</span>
    						<span>${item.phone}</span>
    						<span>${item.pro}</span>
    						<span>${item.email}</span>
    						<span>${item.text}</span>
    						<span>${item.time}</span>
    					</li>`
    				})
    				msgUl.innerHTML= str;
    			}
    			//点击事件
    			var oUL = document.querySelector(".pagination");
    			oUL.addEventListener("click",function(e){
    				var e = e || window.event;
    				var oLi = oUL.querySelectorAll("li");
    				console.log(oLi)
    				if(e.target.tagName.toLowerCase() == "li"){
    					var page = e.target.innerText;
    					cache.get(page);
    					for(var i=0;i<oLi.length;i++){
    						oLi[i].className ="";
    					};
    					e.target.className = "page-active";
    				}
    			});
    			//生成分页
    			function createLi(pagetotal){
    				console.log(pagetotal);
    				var str = "";
    				for(var i=0;i<pagetotal;i++){
    					str += `<li>${i+1}</li>`
    				}
    				oUL.innerHTML = str;
    				var oLi = oUL.querySelectorAll("li");
    				oLi[0].className="page-active";
    			}
    		});
    		
    		
    	</script>
    </body>
    </html>
    
  • 相关阅读:
    hdu 4685(强连通分量+二分图的完美匹配)
    图的连通性问题
    poj 1904(强连通分量+完美匹配)
    poj 2186 "Popular Cows"(强连通分量入门题)
    poj 1236(强连通分量分解模板题)
    EOJ2018.10 月赛
    21.Merge Two Sorted Lists
    20.Valid Parentheses
    19.Remove Nth Node From End of List
    18.4Sum
  • 原文地址:https://www.cnblogs.com/wangshengli520/p/11022866.html
Copyright © 2020-2023  润新知