`

JQuery Mobile列表内容分版面异步加载(一)

阅读更多
前言:
    用智能手机和平板电脑上网看微博、文章、小说时,手指往上滑动页面,经常看到下面有“正在加载,请稍后...”。 公司移动运用这块由我来搞,也有这个方面的运用需求,所以我也做了一个类似的异步加载版面的例子。

好处:
    只有在用户手指滑动屏幕时才加载下一个版面的数据,一方面可以为用户节省流量;另一方面改善了第一次加载时的响应速度。


名词注解
JQuery Mobile: 它是一个为移动设备浏览器写的一个开源js框架,官方描述:
jQuery Mobile: Touch-Optimized Web Framework for Smartphones & Tablets

A unified user interface system across all popular mobile device platforms, built on the rock-solid jQuery and jQuery UI foundation. Its lightweight code is built with progressive enhancement, and has a flexible, easily themeable design.


官方链接:
    http://jquerymobile.com/

版面:
    在IPAD上的safari浏览器,页面列表的内容如果很长的话,需要用手指向上滑动屏幕来查看下面的列表数据,一个屏幕就是一个版面啦 ,当然这个不是严格意义上的版面。

本文要解决的问题:
    异步加载列表内容,就是说, 刚进入页面时,加载大概两个版面的数据,然后手指向上滑动屏幕,如果手指触摸点还没有进入第二个版面则不会加载第三个版面的列表数据,当手指触摸点在第三个版面时,在页面的最下方显示“正在加载,请稍后...”,并调用jquery的ajax异步请求方法,来加载第四个版面的数据,加载完成后会移除“正在加载,请稍后...”的提示文字。

需要考虑的问题:
1、如何确定列表的版面个数?
   不需要。

2、如何确定每个版面显示的记录条数?

     因为列表页面的url是在后台配置的,不能将pageSize写死在URL里。而在js里计算出的pageSize是不能够作为这个URL的参数,struts2的action调用时,如果没有找到pageSize这个参数值,则默认pageSize=15,所以呢,第一次进入列表页面时,pageSize只能是15。也就是说列表页面只显示15条记录,这个在7寸的三星TP-1000平板及小于7寸的屏幕上还行。估计在大屏幕的IPAD上有点少,到时候具体考虑一下怎么定这个数。
 
      js中计算的pageSize在AJAX异步加载版面时会作为请求的参数。比如IPAD2屏幕每个版面适合显示20条记录,则以后每个版面加载时都取20条出来。

3、如何确定是否要加载下一个版面?
      手指解决进入了已经加载的版面的最后一个时,就要加载下一个版面,如何确定触点在最后一个版面呢?经过分析,可以给<li>指定id。然后就可以获取<li>元素的序号,来判断触点是在哪个版面。
<div id="mainPage" data-role="page">
	<div data-role="header" data-position="inline" data-theme="b">
		<h1>中间计量审批列表</h1>
		<a class="ui-btn-right" href="javascript:goDesktop();" data-role="button" data-icon="back">返回桌面</a>
	</div>
	
	<div data-role="content">
		<ww:if test="list.size>0">
			<ul id="list" data-role="listview">
				<ww:iterator value="list" status="status">
					<li id="li<ww:property value="#status.index" />"><a href="javascript:toAudit('<ww:property value='id'/>')"><ww:property value="topic" />(<ww:property value="startTime" />)</a></li>
				</ww:iterator>
			</ul>
		</ww:if>
		<ww:if test="list.size==0">
			不存在任何数据.
		</ww:if>
	</div>
</div>


/** 计算手指滑动时起始点处的DOM元素的序号 */
function getScrollPosition(event){
	var target = $(event.target);
	while(target.attr("id")==undefined){
		target = target.parent();
	}
	//手指滑动触点的<li>元素的ID
	var targetId = target.attr('id');
	//手指滑动触点的<li>元素的序号
	var position;
	//手指滑动触点的Tag
	var targetTag = "li";
	if(targetId!=undefined && targetId.indexOf(targetTag)==0){
		position = targetId.substring(targetTag.length);
	}
	return position;
}





  • 大小: 106 KB
2
4
分享到:
评论
1 楼 一笑_奈何 2015-07-13  
  什么呀,写的不清不楚的。你是采用的什么监听事件呀

相关推荐

    jquery异步加载页面

    在“jQuery异步加载页面”的场景中,我们通常指的是利用jQuery的Ajax功能来实现页面内容的动态加载,以提高用户体验,减少网络传输负担。这种技术尤其适用于选项卡式布局,因为用户通常只需看到一两个选项卡的内容,...

    jquery mobile 滚动加载内容

    当我们谈论“jQuery Mobile 滚动加载内容”时,我们实际上是在讨论一种动态加载技术,即在用户滚动页面到接近底部时,通过 AJAX(异步 JavaScript 和 XML)技术从服务器获取并插入更多内容,以实现无尽滚动的效果。...

    jQuery选项卡切换图片异步加载代码.zip

    在网页设计中,jQuery选项卡切换图片异步加载是一种常见的用户体验优化技术,它能提高页面加载速度并降低服务器压力。这种技术尤其适用于图片丰富的网站,如图片相册、产品展示等场景。本压缩包"jQuery选项卡切换...

    jquery ajax选项卡使用jQuery选项卡切换异步加载请求数据

    在这个场景中,我们讨论的是如何利用jQuery的Ajax功能来创建一个选项卡系统,该系统在用户切换选项卡时能动态地从服务器加载内容。 首先,让我们了解jQuery选项卡的基本结构。通常,选项卡由HTML的`&lt;div&gt;`或`&lt;ul&gt;`...

    jquery 异步treeTable树形插件

    jQuery异步treeTable插件是用于在网页上实现这种功能的一种高效工具,它结合了表格与树形结构的优点,可以动态加载数据,节省页面资源,提升用户体验。本文将深入探讨这一插件的工作原理、使用方法以及实际应用中的...

    jquery 异步加载页面

    在Web开发中,异步加载页面是一种常见的优化技术,它允许我们在不刷新整个页面的情况下动态地加载新的内容。jQuery,一个强大的JavaScript库,提供了丰富的API来实现这一功能,使得网页交互更加流畅,用户体验更佳。...

    jquery easyui tree 树形列表节点异步加载

    在本文中,我们将深入探讨jQuery EasyUI中的Tree组件以及如何实现树形列表节点的异步加载。EasyUI是一个基于jQuery的轻量级前端框架,它提供了丰富的UI组件,包括我们这里关注的Tree组件。异步加载是提升用户体验的...

    jQuery插件TreeView异步加载树

    以下是一个简单的示例,展示了如何使用jQuery和TreeView插件实现异步加载: ```javascript $("#treeview").treeview({ data: [], // 初始化时为空 collapseIcon: "fa fa-caret-right", expandIcon: "fa fa-caret...

    jquery页面加载效果

    "jQuery页面加载效果"是指利用JavaScript库jQuery实现的动态加载动画,它能够以吸引人的视觉方式展示网页内容正在加载的过程,使用户在等待期间不会感到乏味。这种效果在现代网页设计中被广泛应用,尤其在内容分块...

    jquery异步加载图片

    如何异步加载图片,如果图片多了,这个脚本的效果还不错..

    jQuery mobile相册的一种样式

    在IT行业中,jQuery Mobile是一种广泛使用的前端框架,它专门用于构建响应式和触屏友好的移动Web应用。jQuery Mobile提供了一系列的UI组件和交互效果,其中包括我们今天要讨论的主题——相册样式。在这个主题下,...

    jQuery Mobile 所需要的部署文件

    jQuery Mobile 是一个轻量级的、基于 jQuery 库的框架,专为移动设备上的网页应用设计,它提供了丰富的用户界面(UI)组件和交互效果,让开发者能够快速构建响应式和触控友好的Web应用程序。这个资源包以“Hello ...

    jQuery mobile相册

    2. **相册容器**:创建一个用于显示相册的容器,例如使用`&lt;div&gt;`元素,并赋予它一个特定的数据-角色,如"data-role='content'",这是jQuery Mobile页面的主要内容区域。 3. **图片列表**:将每张图片包装在一个链接...

    jquerymobile滚动加载内容

    本篇将深入探讨如何利用jQuery Mobile和Ajax实现滚动加载内容这一功能,这对于创建无限滚动的网页尤其重要。 一、jQuery Mobile 概述 jQuery Mobile是一个基于jQuery库的轻量级框架,它为移动设备提供了一套统一的...

    如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据(附源码下载)

    在介绍如何使用PHP、jQuery和MySQL实现异步加载ECharts地图数据之前,需要了解几个关键的技术点,以便更好地理解整篇教程。 首先,ECharts是由百度开源的一个强大的数据可视化工具库,它支持多样的数据展示形式,...

    下拉刷新,上拉加载,JqueryMobile1.4.3+iScroll4

    JqueryMobile是一个轻量级的框架,专门用于构建响应式的移动Web应用。它提供了丰富的组件、易于使用的API以及对各种设备的兼容性,简化了移动网页的开发流程。1.4.3版本是JqueryMobile的一个稳定版本,它支持HTML5...

    jquery ztree 异步动态加载

    **jQuery ZTree 异步动态加载详解** 在Web开发中,数据展示往往涉及到大量信息的处理,特别是树形结构的数据。jQuery ZTree是一款强大的JavaScript组件,用于构建具有丰富交互效果的树状菜单或树形控件。在面对大...

    jquery ztree 异步加载

    ### jQuery ZTree异步加载详解 #### 一、概述 jQuery ZTree插件是一款功能强大的树形控件,被广泛应用于Web开发中,用于展示层级结构数据。在大数据量的场景下,同步加载所有节点数据可能会导致页面加载缓慢,用户...

    jQueryMobile-HTML5模板

    2. **自动页面导航**:通过数据-URL(data-url)属性和页面容器,jQuery Mobile可以自动管理页面的加载和切换,实现平滑的页面过渡效果。 3. **可定制的主题系统**:jQuery Mobile提供了一套主题引擎,允许开发者...

    jquery实现页面的异步加载(jsp)

    在网页开发中,异步加载是一种提升用户体验的重要技术。它允许网页的部分内容在不重新加载整个页面的情况下更新,显著减少了用户等待时间。本教程将详细讲解如何使用jQuery库来实现页面的异步加载,主要涉及两种不同...

Global site tag (gtag.js) - Google Analytics