求一个JS的翻页方法

现有的流程是这样的:从数据库中读取原始数据(数组A),然后进行处理,得到需要呈现在页面上的报表数据(数组B)。由于大部分的时间被消耗在了“原始数据→报表数据”的过程中,所... 现有的流程是这样的:
从数据库中读取原始数据(数组A),然后进行处理,得到需要呈现在页面上的报表数据(数组B)。由于大部分的时间被消耗在了“原始数据→报表数据”的过程中,所以我想在翻页的过程中跳过这个过程,也就是想到用不刷新页面的翻页,也就是得到报表数据后,每次翻页操作,都是从报表数据(数组B)中截取相应的数据。

可是这该怎么做呢?

我对JS不大熟,只会用JQUERY做些类似的东西,页面是用PERL写的(这个没关系,我需要的是思路)

求助高手,怎样才能点完翻页按钮后,直接去找那个数组(服务器的环境限制:没有cache机制。而存在cookie、session中又不现实——因为数据量很大)
展开
 我来答
歪鼻木熊
推荐于2016-05-16 · TA获得超过458个赞
知道小有建树答主
回答量:305
采纳率:0%
帮助的人:432万
展开全部
如果数据量太大,一下子把全部数据发到页面上,也会使页面变得很慢。当然,如果数据量是几十条这样的数量级也还可以。

不刷新的话,有两个办法:
一是ajax方式,JS去请求个服务端程序,传入页号,这个程序每次只取一页的数据。这也是常用的办法,分页由服务端实现。
二是你希望的,把组织好的数据全部传到页面上,通过JS方式分页呈现。对这种分页,可以用根据数组下标进行分页:
比如每页10条数据,第一页就取下标为0-9的数据显示出来,第二页就是10-19,分页的算法你应该会的吧。
数据可以显示在一个容器(DIV或TABLE等)里,每次翻页时,替换这个容器的内容(如容器的innerHTML)。

比如你的数组是 data[], 用来显示的容器是 <div id="viewdata"></div>,大概可以这么做:
------------------------------------
<script>
function showdata(pageindex)
{
var pagesize = 10;
var recordstart = (pageindex - 1) * pagesize
var strhtml = '';
for (var i = 0; i < pagesize; i ++)
{
var recordindex = recordstart + i;
/*
这里取下标为recordindex的数据组织HTML字符串,如:
strhtml += data[recordindex];
*/
}
document.getElementById('viewdata').innerHTML = strhtml;
}
</script>
<div id="viewdata"></div>
<a href="javascript:showdata(1)">第一页</a>
<a href="javascript:showdata(2)">第二页</a>
....
-------------------------------------
至于想知道共有多少页,可以用这个算法:
var pagecount = parseInt((data.length - 1) / pagesize) + 1
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式