当前位置:首页 » 硬盘大全 » js数据分页缓存
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

js数据分页缓存

发布时间: 2023-06-30 09:25:43

① 切换标签后,发现js有缓存,事件多次触发,如何解决

第二个实例是关于标签页切换的,先看一下效果:

这也是一个很常见的交互效果,以往正常的javascript写法是给各个按钮绑定事件来切换不同的层,当然也可以用纯css写,给上面的三个切换的层分别添加一个单选按钮的兄弟节点,再用绝对定位把单选按钮定位在三个button上面,这样就可以用:checked伪类来单选按钮的兄弟元素,即对应的不同的层,我简单的写了一下DOM结构,大概就是这样:

那么用vue.js实现上述的效果,其实也有两种途径,一种使用vue-router,vue-router是vue.js的一个路由组件,在单页面应用中非常非常流行,如果切换的层数据量非常大的话,比如每个层都要有服务器进行大量的数据交互,那么强烈建议使用vue-router,因为vue-router在每次切换路由的过程中,都会自动销毁(destroyed)前面的组件,这样在频繁的操作中页面也不会卡,而且vue-router也定义了页面切换过程中的过渡动画。

如果数据量并不复杂的话,可以直接通过vue.js定义切换状态来切换不同的层。

首先先把template和css写好:

其中introce、chatbar、videobar分别代表三个需要跟随button切换的组件,接下来就可以给vue.js的button节点绑定事件来操控点击状态:

点击不同的button,会让active的状态改变,同时这个状态会作用到button上面,比如让被点击的button有个高亮的效果等等。

那么如何让active的状态作用到弹出层呢?其实定义一个computed函数就可以了:

总结

以上所述是小编给大家介绍的vue.js实现标签页切换效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:Vue.js实现微信过渡动画左右切换效果vue.js 左侧二级菜单显示与隐藏切换的实例代码Vue.js tab实现选项卡切换Vue.js组件tab实现选项卡切换Vue.js组件tabs实现选项卡切换效果

② js的分页原理以及实现步骤是什么

主要是借鉴了网上一个例子,修改了一些小地方,前端分页的技巧,表格的数据是已经写好了,可以前端渲染表格然后再分页,都是可以的。

其实分页最关键是这两句:

var startRow = (currentPage - 1) * pageSize+1; //currentPage 为当前页,pageSize为每页显示的数据量
var endRow = currentPage * pageSize;

找到我们需要显示的行的范围(starRow~endRow)

ps:这里在跳转的时候遇到了一个小BUG,就是获取到的select的value值是string类型的,比如获取到了1,然后你想再加1的时候就会变成"11" 而不是我们想要的"2",所以这里需要用parseInt( )来转换一下,小细节需要注意呀!!!

效果图:


[javascript] view plain print?

  • <!doctypehtml>

  • <html>

  • <head>

  • <metacharset='utf-8'>

  • <styletype="text/css">

  • a{

  • text-decoration:none;

  • }

  • .table2{

  • border:#C8C8C8solid;

  • border-width:1px0px0px1px;

  • background:#F3F0F0;

  • margin-top:25px;

  • }

  • .td0{

  • border:#C8C8C8solid;

  • border-width:001px0;

  • }

  • .td2{

  • border:#C8C8C8solid;

  • border-width:01px1px0;

  • }

  • .barcon{

  • width:1000px;

  • margin:0auto;

  • text-align:center;

  • }

  • .barcon1{

  • font-size:17px;

  • float:left;

  • margin-top:20px;

  • }

  • .barcon2{

  • float:right;

  • }

  • .barcon2ul{

  • margin:20px0;

  • padding-left:0;

  • list-style:none;

  • text-align:center;

  • }

  • .barcon2li{

  • display:inline;

  • }

  • .barcon2a{

  • font-size:16px;

  • font-weight:normal;

  • display:inline-block;

  • padding:5px;

  • padding-top:0;

  • color:black;

  • border:1pxsolid#ddd;

  • background-color:#fff;

  • }

  • .barcon2a:hover{

  • background-color:#eee;

  • }

  • .ban{

  • opacity:.4;

  • }

  • </style>

  • </head>

  • <body>

  • <tablewidth="950"cellpadding="0"cellspacing="0"class="table2"align="center">

  • <thead>

  • <tr>

  • <tdcolspan="3"height="33"class="td0"></td>

  • <tdalign="center"class="td2"><ahref="###">添加用户</a></td>

  • </tr>

  • <tralign="center">

  • <thwidth="150"height="33"class="td2">序号</th>

  • <thwidth="300"class="td2">用户名</th>

  • <thwidth="250"class="td2">权限</th>

  • <thwidth="250"class="td2">操作</th>

  • </tr>

  • </thead>

  • <tbodyid="adminTbody">

  • <tralign="center">

  • <tdclass="td2"height="33"width="150">1</td>

  • <tdclass="td2">admin</td>

  • <tdclass="td2">管理员</td>

  • <tdclass="td2"><ahref="###">修改</a></td>

  • </tr>

  • </tbody>

  • </table>

  • <divid="barcon"class="barcon">

  • <divid="barcon1"class="barcon1"></div>

  • <divid="barcon2"class="barcon2">

  • <ul>

  • <li><ahref="###"id="firstPage">首页</a></li>

  • <li><ahref="###"id="prePage">上一页</a></li>

  • <li><ahref="###"id="nextPage">下一页</a></li>

  • <li><ahref="###"id="lastPage">尾页</a></li>

  • <li><selectid="jumpWhere">

  • </select></li>

  • <li><ahref="###"id="jumpPage"onclick="jumpPage()">跳转</a></li>

  • </ul>

  • </div>

  • </div>

  • <scriptsrc="jquery.js"></script>

  • <script>

  • /*动态生成用户函数

  • num为生成的用户数量

  • */

  • functiondynamicAddUser(num){

  • for(vari=1;i<=num;i++)

  • {

  • vartrNode=document.createElement("tr");

  • $(trNode).attr("align","center");

  • //序号

  • vartdNodeNum=document.createElement("td");

  • $(tdNodeNum).html(i+1);

  • tdNodeNum.style.width="150px";

  • tdNodeNum.style.height="33px";

  • tdNodeNum.className="td2";

  • //用户名

  • vartdNodeName=document.createElement("td");

  • $(tdNodeName).html("lzj"+i);

  • tdNodeName.style.width="300px";

  • tdNodeName.className="td2";

  • //权限

  • vartdNodePri=document.createElement("td");

  • tdNodePri.style.width="250px";

  • tdNodePri.className="td2";

  • varpriText=document.createElement("span");

  • $(priText).css({"display":"inline-block","text-align":"center"});

  • $(priText).text("普通用户");

  • tdNodePri.appendChild(priText);

  • //操作

  • vartdNodeOper=document.createElement("td");

  • tdNodeOper.style.width="170px";

  • tdNodeOper.className="td2";

  • vareditA=document.createElement("a");

  • $(editA).attr("href","###").text("编辑");

  • $(editA).css({display:"inline-block"});

  • tdNodeOper.appendChild(editA);

  • trNode.appendChild(tdNodeNum);

  • trNode.appendChild(tdNodeName);

  • trNode.appendChild(tdNodePri);

  • trNode.appendChild(tdNodeOper);

  • $("#adminTbody")[0].appendChild(trNode);

  • }

  • }

  • $(function(){

  • dynamicAddUser(80);

  • goPage(1,10);

  • vartempOption="";

  • for(vari=1;i<=totalPage;i++)

  • {

  • tempOption+='<optionvalue='+i+'>'+i+'</option>'

  • }

  • $("#jumpWhere").html(tempOption);

  • })

  • /**

  • *分页函数

  • *pno--页数

  • *psize--每页显示记录数

  • *分页部分是从真实数据行开始,因而存在加减某个常数,以确定真正的记录数

  • *纯js分页实质是数据行全部加载,通过是否显示属性完成分页功能

  • **/

  • varpageSize=0;//每页显示行数

  • varcurrentPage_=1;//当前页全局变量,用于跳转时判断是否在相同页,在就不跳,否则跳转。

  • vartotalPage;//总页数

  • functiongoPage(pno,psize){

  • varitable=document.getElementById("adminTbody");

  • varnum=itable.rows.length;//表格所有行数(所有记录数)

  • pageSize=psize;//每页显示行数

  • //总共分几页

  • if(num/pageSize>parseInt(num/pageSize)){

  • totalPage=parseInt(num/pageSize)+1;

  • }else{

  • totalPage=parseInt(num/pageSize);

  • }

  • varcurrentPage=pno;//当前页数

  • currentPage_=currentPage;

  • varstartRow=(currentPage-1)*pageSize+1;

  • varendRow=currentPage*pageSize;

  • endRow=(endRow>num)?num:endRow;

  • //遍历显示数据实现分页

  • /*for(vari=1;i<(num+1);i++){

  • varirow=itable.rows[i-1];

  • if(i>=startRow&&i<=endRow){

  • irow.style.display="";

  • }else{

  • irow.style.display="none";

  • }

  • }*/

  • $("#adminTbodytr").hide();

  • for(vari=startRow-1;i<endRow;i++)

  • {

  • $("#adminTbodytr").eq(i).show();

  • }

  • vartempStr="共"+num+"条记录分"+totalPage+"页当前第"+currentPage+"页";

  • document.getElementById("barcon1").innerHTML=tempStr;

  • if(currentPage>1){

  • $("#firstPage").on("click",function(){

  • goPage(1,psize);

  • }).removeClass("ban");

  • $("#prePage").on("click",function(){

  • goPage(currentPage-1,psize);

  • }).removeClass("ban");

  • }else{

  • $("#firstPage").off("click").addClass("ban");

  • $("#prePage").off("click").addClass("ban");

  • }

  • if(currentPage<totalPage){

  • $("#nextPage").on("click",function(){

  • goPage(currentPage+1,psize);

  • }).removeClass("ban")

  • $("#lastPage").on("click",function(){

  • goPage(totalPage,psize);

  • }).removeClass("ban")

  • }else{

  • $("#nextPage").off("click").addClass("ban");

  • $("#lastPage").off("click").addClass("ban");

  • }

  • $("#jumpWhere").val(currentPage);

  • }

  • functionjumpPage()

  • {

  • varnum=parseInt($("#jumpWhere").val());

  • if(num!=currentPage_)

  • {

  • goPage(num,pageSize);

  • }

  • }

  • </script>

  • </body>

  • </html>

③ 用js如何在用户本地缓存一些数据 如何实现

可以利用localStorage来储存数据,用法也很简单:
localStorage["key"] = "要储存的数据";
提取出来也同样简单:
var x = localStorage["key"]
key是键名,可以自由设定。
需要注意的是,只有支持HTML5的浏览器才能使用localStorage

④ js清理手机缓存

在JavaScript中清除手机缓存的方法并不是直接使用JavaScript代码就能完成的,因为JavaScript自身不具备清除缓存的能力,需厅扮要通过一些特定的API来实现。

可以通过以下步骤清除手机缓存:

1. 使用HTML5中的应用程序缓存(Application Cache)来缓存部分页面和资源文件,当然,缓存的数据也可以随时被清除。

2. 使用浏览器提供的缓存清除API。不同的浏宴伏斗览器提供不同的API来清除缓存,例如Chrome浏览器提供了chrome.browsingData.clear API接口,可以通过该接口来清除浏晌磨览器缓存。

需要注意的是,清除缓存会导致部分数据丢失,同时清除缓存的方法也因不同的浏览器和操作系统而异,所以在具体实现时要仔细查看相关文档并谨慎操作。

⑤ 如何清理chrome浏览器的js缓存

chrome浏览器缓存清理方法如下:
1、打开谷歌浏览器,点击下图箭头所指,选择设置

2、在设置页面中,选择显示高级设置,然后找到隐私设置,点击清除浏览数据揪心过了。

⑥ 如何将js从数据库中渲染出来的数据做成table分页

您好
如果要在jsp页面里实现按你要求分页的话,你可以循环方式这样写
for(int i=初始纪录树;i<最大记录数;i++){
list.add(从数据库取出的又放进去的ArrayList<对象>);
}
之后在从list里取用循环取出并输出在前台页面。这里的初始记录数为(currentPage-1)*pageSize,这里的最大记录数为currentPage*pageSize。
每次请求都是该页面,而仅仅是***.jsp?currentPage=?这个问号不同而已。
当然不赞成把JAVA代码放在JSP页面,因为它仅仅是用来展示而尽量不要参与逻辑业务。要放在控制层或业务层。比如说去请求servlet。
并且一次取所有数据的分页并不适合当数据量很大的时候。可以使用数据库分页。如mysql 用top,oracle用rownum。

⑦ js如何获取缓存

1、创建一个cache.js文件,前端页面,定义那些数据需要一次性拿到前端缓存,定义一个对象来保存这些数据。