① 如何优化很长的 jsON 数据
我们知道,JSON作为一种轻量级的数据交换格式,现在被广泛应用,特别是在API层,返回数据格式基本上都是JSON。但是,JSON字符串如果过长,那在网络传输中也存在耗时的,站在性能角度我们需要合理优化JSON。
JSON优化建议
1、服务器端开启GZip压缩
主流的服务端都支持GZip压缩,对于一般的纯文本内容GZip压缩率在35%以上,这样做的好处也很明显:
减少JSON输出大小,网络传输速度更快;
节省带宽。
2、键名缩短
对于结果集而言,数据都是查询循环输出的,所以当我们把键名缩短也变相压缩了JSON文本长度。比如原本的 {"name":"张三"} 我们可以写为 {"a":"张三"}
3、JSON中的中文避免被转为Unicode编码
现在也有不少人喜欢将JSON中的汉字转为Unicode编码,此时JSON文本内容就会变得很长,如果避免汉字转码,可以控制文本长度。
以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!
② 请问如何用jquery 实现html页面的分页查询
在进行分页查询时,首先需要构建一个PageBean类,用于封装分页所需的数据。例如:
public class PageBean {
private int pageCount = 0; // 总页数
private List pageData = null; // 当前页数据集
private int pageSize = 10; // 每页大小
private int currentPage = 1; // 当前页
private long totalRecord = 0; // 总记录数
private int beginIndex = 0; // 分页起始记录号
private int endIndex = 1; // 分页结束记录号
public int getPageCount() {
pageCount = (int)(totalRecord + pageSize -1)/pageSize;
return pageCount;
}
public void setPageCount(int pageCount) {
this.pageCount = pageCount;
}
public List getPageData() {
return pageData;
}
public void setPageData(List pageData) {
this.pageData = pageData;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getCurrentPage() {
if (currentPage < 1) {
currentPage = 1;
}
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public long getTotalRecord() {
if (totalRecord < 0) {
totalRecord = 0;
}
return totalRecord;
}
public void setTotalRecord(long totalRecord) {
this.totalRecord = totalRecord;
}
public int getBeginIndex() {
beginIndex = (currentPage - 1) * pageSize+1;
return beginIndex;
}
public void setBeginIndex(int beginIndex) {
this.beginIndex = beginIndex;
}
public int getEndIndex() {
endIndex = currentPage * pageSize;
return endIndex;
}
public void setEndIndex(int endIndex) {
this.endIndex = endIndex;
}
}
在前端页面上,可以通过jQuery的Ajax方法发送请求,获取后台数据。例如:
$.ajax({
type:"post",
url:"requestPage",
dataType:"json",
data:{
// 这里就是封装数据的地方,比如你要到第二页的时候,在这之前要读取当前的页数,并进行适当的判断,是键值对的形式例如:"current":1,"pageSize":10
},
success:function(data){
// 这里是返回json字符串
var jsonObj=$(data);
// 然后解析遍历json
$.each(data.pageData,function(index,item){
// 这个回调函数里面的第一个参数是下标,第二个参数是集合里面的单个对象
// 然后生成显示…………结束
});
}
});
通过这种方式,可以实现HTML页面的分页查询功能。
③ 在JSP页面中实现分页显示和翻页功能,需要来回传递哪几个参数
页面分页通常有两种展现形式:
查询出全部结果数据,以集合等形式保存在内存中,每次在内存中读取一页的数据显示。该方法首次加载数据量较大,耗时会很久,而且可能展现出的数据可能包含被修改或删除过的过期或垃圾数据,存储数据也会消耗大量的内存,但首次加载后,分页展现会非常迅速,效果较好。
每次切页时从数据库中检索当前页所需展现数据,每次查询数较少,总体开销也就减少了,再进行SQL优化,也能达到较高的效率,而且实时检索不易出现数据错误的问题。
使用分页功能,最关键的参数如下:
请求参数:
1)当前需要展示的页码,变量,默认从第一页开始,可能是页面上的上下页,通过当前页码±1来计算出来,也可能是页面有页码页表用户通过点击相应数字或是输入框用户手输入的页码;
2)每页显示的数量,通常是变量,可以从页码提供相应的下拉框供用户选择。若是定义为常量,那就不需要每次传递了;
3)总数量,根据筛选条件决定,若是筛选条件固定,则只需将此定义为常量,不必作为参数传输,否则则需要根据筛选条件每次查询数据库获取计数。
返回参数:
返回需要展示的列表及以上请求参数,通常列表通过Ajax计数实现,那也就不需要返回请求参数了。所展示的列表通常会使用集合类型进行封装或是数据读取成json格式由前台进行解析。
④ jsp怎么用ajax做分页
利用ajax实现,和没有使用ajax,技术难度上差不多。我是这样实现的:
首先,做一个javabean主要是用来存储你要查询的数据,就是getxx和setxx
二 做一个,里面包括了getTotalSize()//总个数,getPages(int pageSize)//总页数和List transferPagination(int currPage,int pageSize)//数据列表
在数据列表的函数中是调用了一个存储过程来是实现分页查询的,存储过程如下:
create proc procPagination
@currPage int,--当前页
@pageSize int,--每页大小
@tableName varchar(50),--表名
@tableId varchar(50)--查询字段
as
begin
declare @sql varchar(8000)
set @sql = 'select top '+convert(char(5),@pageSize)+' * from '+@tableName+' where '+@tableId+' not in '
set @sql = @sql +'(select top '+convert(char(5),@pageSize*(@currPage-1))+' '+@tableId+' from '+@tableName
set @sql = @sql + ' order by '+@tableId+')'
exec(@sql)
end
三 在一个b.jsp页面中调用上面的方法,得到要显示页码的数据列表
四 在另外一个a.jsp中利用ajax发送请求到b.jsp中得到其中的数据列表,在ajax中主要负责的是:
得到当前的页数,得到总页数,得到每页要显示的数据条数等
如果你用jsp做过分页的话 应该就明白了,如果不明白,把邮箱留下,发给你..
⑤ jquery +json +html 怎么做分页
$(document).ready(function () {
$.getJSON("list.ashx", function (data) {
$.each(data.TableInfo, function (i, item) {
$("#tbody").append("<tr target=\"sid_user\" rel=" + item.id + "><td><input name=\"ids\" value=" + item.id + " type=\"checkbox\"></td><td>" + item.id + "</td><td>" + item.name + "</td></tr>");
});
});
});
<table class="table" width="1200" layoutH="138">
<thead>
<tr>
<th width="22"><input type="checkbox" group="ids" class="checkboxCtrl"></th>
<th width="120" orderField="accountNo" class="asc">客户号</th>
<th orderField="accountName">客户名称</th>
</tr>
</thead>
<tbody id="tbody">
</tbody>
</table>