- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
背景:前台列表显示数据时,如果数据量较大(一般大于500)时需要分页显示。目前UIFII 默认是分页机制是 PK 分页,即先查询全部数据的 pk 并保存在客户端,然后按页面行数大小
(即每页显示多少行)来对 PK 分页。之后根据分页栏控件(PaginationBar)的行为(跳转、上页、下页、首页、末页、修改页面大小)等行为,通过事件通知由PaginationQueryService 来查询数据,并交由 IPaginationModelListener 来将要显示的页面的数据展现到UI 上。
问题:但当数据量特别大时(大于5000),特别是客户端的硬件配置较低(内存小、CPU 处理能力低下)或客户端到服务器的网络速度条件较差(带宽小、稳定性差)时,客户端在处理分页时的效果较差。
解决方案:其实UIFII 中的分页控件只是 UAP 提供的一种解决方案,UIFII 完全支持开发者基于此开发其他算法的分页控件,如下面将尝试的数据库分页算法。即记录查询条件,并在第 一次查询全部数据量和第一页数据,之后根据跳转页号的不同拼接不同的查询条件来实现分 页。注意:数据库中的数据会在查询分页过程中发生变化,对于PK 分页算法来说,其分布在不同页面的查询结果会有数据减少(删除数据)或变更(更新数据)但不会有增加、数据重复;但对于数据库分页,分布在不同页面的数据则会增加、减少、变更或重复。这需要开发者根据使用场景不同来衡量。
UIFII 中原来的实现机制
UI 配置文件关于分页的部分的内容
beanid=manageModelDataManagerclass=XXXXModelDataManager
beanid=modelServiceclass=XXXAppModelService/
beanid=paginationBarclass=ponents.pagination.PaginationBar
propertyname=paginationModelref=paginationModel/property
propertyname=contextref=context/
/bean
beanid=paginationModelclass=ponents.pagination.PaginationModel
init-method=init
propertyname=paginationQueryServiceref=modelService/property
/bean
beanid=containerclass=nc.ui.uif2.TangramContainer init-method=initUI
……
bean…ref=paginationBar/
……
/bean
数据分页逻辑及数据更新
publicclassXXXModelDataManagerimplementsIAppModelDataManagerEx,IPaginationModelListener {BillManageModelmodel; PaginationModelpaginationModel; privateBillManagePaginationDelegatordelegator;publicBillManageModelgetModel() {return
publicclassXXXModelDataManagerimplementsIAppModelDataManagerEx,IPaginationModelL
istener {
BillManageModelmodel; PaginationModelpaginationModel; privateBillManagePaginationDelegatordelegator;
publicBillManageModelgetModel() {
returnmodel;
}
publicBillManagePaginationDelegatorgetDelegator() {
if (delegator == null) {
delegator = newBillManagePaginationDelegator(getModel(), getPaginationModel());
}
returndelegator;
}
publicvoidsetDelegator(BillManagePaginationDelegator delegator) {
this.delegator = delegator;
}
publicvoidsetModel(BillManageModel model) {
this.model = model;
}
publicvoidinitModel
您可能关注的文档
- pep小学五年级英语上册教学反思全册.docx
- PEP小学英语六年级 上册 第三单元 read and write教案.docx
- PEP小学英语六年级教学设计.docx
- PEP小学英语六年级上册测试题.docx
- PEP小学英语六年级上册教学计划及进度表(表格式).docx
- PEP小学英语六年级上册学科教学计划.docx
- PEP小学英语六年级下册第三单元教案.docx
- PEP小学英语六年级下册教学计划及进度表(表格式).docx
- PEP小学英语三年级上册各单元教学目标.docx
- PEP小学英语三年级下册期末试卷 .docx
- 两个相干源产生波具有3b chmc.pdf
- wifi高性能模块ce fcc rohs认证-xrf report电子档.pdf
- linux pci multiport installation manual多端口安装手册.pdf
- 二章基本概念理论.pdf
- 互联网工程任务组ietfs turnerrfc5940 txt.pdf
- mtz0数学高级证明集合关系群mathematics paper 3 sets relations and groups french.pdf
- 网上书店需求规格说明.pdf
- 系统测试用例pcweb终端.pdf
- apv1 keil环境下接口兼容问题.pdf
- 2023届江西省八所重点中学高三3月联考英语试题(原卷版).docx
文档评论(0)