MUI_Ajax

功能:

       MUI 下拉刷新 结合AJAX 实现网络交互,动态添加元素并追加相应的tap事件

       ps:MUI 下拉刷新控件滑动部分是完整的webview(子webview)。所以需要在父webView中创建一个单独的webview。

模块

      pullrefresh.html: 下拉刷新父webview

      pullrefersh_child.html :下拉刷新子webview


pullrefresh.html:

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<link rel="stylesheet" href="css/mui.css" />
		<title>下拉刷新</title>
	</head>

	<body>
		<header class="mui-bar mui-bar-nav">
			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left" style="color: white;"><font size="4">返回</font></a>
			<h1 class="mui-title">下拉刷新</h1>
		</header>
		<div class="mui-content"></div>
	</body>
	<script src="js/mui.js"></script>
	<script>
		mui.init({
			subpages: [{
				url: 'pullrefersh_child.html',
				id: 'pullrefersh_child',
				styles: {
					top: '45px',
					bottom: '0px',
				}
			}]
		});
	</script>

</html>


pullrefersh_child.html:

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
		<link rel="stylesheet" href="css/mui.css" />
		<link rel="stylesheet" href="../css/mui.min.css">
	</head>

	<body>
		<!--下拉刷新容器-->
		<div id="refreshContainer" class="mui-content mui-scroll-wrapper">
			<div class="mui-scroll">
				<!--数据列表-->
				<ul class="mui-table-view mui-table-view-chevron">
				</ul>
			</div>
		</div>

		<script src="js/mui.js"></script>
		<script>
			mui.init({
				pullRefresh: {
					container: '#refreshContainer',
					down: {
						contentdown: '下拉刷新哦',
						contentover: '释放即可刷新哦',
						contentrefresh: '正在刷新哦',
						callback: pulldownrefresh
					},
					up: {
						contentrefresh: '正在刷新哦',
						callback: pulluprefresh
					}
				}
			});
			// down
			indexsub = 0;
			var dataAllArray = new Array();
			/*
			 * 下拉刷新
			 * */
			function pulldownrefresh() {
				indexsub++;
				var urls = "http://192.168.1.1:8080/tt/login";
				var jsondata = {
					name: '张三',
					pwd: '123456',
					index: indexsub
				};
				params = JSON.stringify(jsondata);
				console.log('params = ' + params);
				mui.ajax(urls, {
					data: params,
					type: 'POST',
					timeout: 10000,
					success: function(data) {
						plus.nativeUI.closeWaiting();
						var obj = JSON.parse(data);
						rescode = obj.resCode;
						console.log('rescode = ' + rescode);
						if (rescode == 200) {
							var response = obj.resPonse;
							if (response.length <= 0) {
								plus.nativeUI.toast('哎呀,没有更多数据了');
								mui('.mui-table-view').pullRefresh().endPulldownToRefresh();
								return;
							}
							tableview = document.body.querySelector('.mui-table-view');
							// 全局数组中追加新数据,目的设置item的tap事件可以根据 id从 全局数组中查找对应的object
							for (var i = 0; i < response.length; i++) {
								dataAllArray.push(response[i]);
							}
							// 查询当前子元素个数 (class:mui-table-view-cell)
							cellindex = document.body.querySelectorAll('.mui-table-view-cell');
							for (var k = cellindex.length; k < dataAllArray.length; k++) {
								// 绘制li元素
								//******************************模版一(简单li)*************************							
								//								li_ = document.createElement('li');
								//								li_.id = k;
								//								li_.className = 'mui-table-view-cell';
								//								li_.innerText = dataAllArray[k].name;
								//								if (cellindex.length != 0) {
								//									tableview.insertBefore(li_, tableview.firstChild);
								//								} else {
								//									tableview.appendChild(li_);
								//								}
								//******************************模版二(带图片li)*************************
								var li_ = document.createElement('li');
								li_.className = "mui-table-view-cell mui-media";
								li_.id = k;
								var a_ = document.createElement('a');
								a_.href = "#";
								//a_.id = i;
								var img_ = document.createElement('img');
								img_.className = 'mui-media-object mui-pull-left';
								img_.src = 'images/cbd.jpg';
								var div_ = document.createElement('div');
								div_.className = 'mui-media-body';
								div_.innerText = dataAllArray[k].name;
								var p_ = document.createElement('p');
								p_.className = 'mui-ellipsis';
								p_.innerText = '能和心爱的人一起睡觉,是件幸福的事情;可是,打呼噜怎么办?';
								div_.appendChild(p_);
								a_.appendChild(img_);
								a_.appendChild(div_);
								li_.appendChild(a_);
								if (cellindex.length != 0) {
									tableview.insertBefore(li_, tableview.firstChild);
								} else {
									tableview.appendChild(li_);
								}
							}
							mui('.mui-table-view').pullRefresh().endPulldownToRefresh();
						} else {
							rescontent = obj.resStr;
							alert("error:" + rescode + "\nmsg:" + rescontent);
						}
					},
					error: function(code, type, msg) {
						alert("error:" + code + "\ntype = " + type + "\nmsg:" + msg);
					}
				});
			}
			/**
			 * 上滑加载更多
			 */
			function pulluprefresh() {
				indexsub++;
				var urls = <a target=_blank href="http://192.168.1.1:8080/tt/login">http://192.168.1.1:8080/tt/login</a>;
				var jsondata = {
					name: '张三',
					pwd: '123456',
					index: indexsub
				};
				params = JSON.stringify(jsondata);
				console.log('params = ' + params);
				mui.ajax(urls, {
					data: params,
					type: 'POST',
					timeout: 10000,
					success: function(data) {
						plus.nativeUI.closeWaiting();
						var obj = JSON.parse(data);
						rescode = obj.resCode;
						console.log('rescode = ' + rescode);
						if (rescode == 200) {
							var response = obj.resPonse;
							tableview = document.body.querySelector('.mui-table-view');
							if (response.length <= 0) {
								mui('#refreshContainer').pullRefresh().endPullupToRefresh(true); // true 表示 没有更多数据
							} else {
								for (var i = 0; i < response.length; i++) {
									dataAllArray.push(response[i]);
								}
								// 查询当前子元素个数 (class:mui-table-view-cell)
								cellindex = document.body.querySelectorAll('.mui-table-view-cell');
								for (var k = cellindex.length; k < dataAllArray.length; k++) {
									//******************************模版一(简单li)*************************	
									//									li_ = document.createElement('li');
									//									li_.id = k;
									//									li_.className = 'mui-table-view-cell';
									//									li_.innerText = dataAllArray[k].name;
									//******************************模版二(带图片li)*************************
									var li_ = document.createElement('li');
									li_.className = "mui-table-view-cell mui-media";
									li_.id = k;
									var a_ = document.createElement('a');
									a_.href = "#";
									//a_.id = i;
									var img_ = document.createElement('img');
									img_.className = 'mui-media-object mui-pull-left';
									img_.src = 'images/cbd.jpg';
									var div_ = document.createElement('div');
									div_.className = 'mui-media-body';
									div_.innerText = dataAllArray[k].name;
									var p_ = document.createElement('p');
									p_.className = 'mui-ellipsis';
									p_.innerText = '能和心爱的人一起睡觉,是件幸福的事情;可是,打呼噜怎么办?';
									div_.appendChild(p_);
									a_.appendChild(img_);
									a_.appendChild(div_);
									li_.appendChild(a_);
									tableview.appendChild(li_);
								}
								mui('#refreshContainer').pullRefresh().endPullupToRefresh(false); // true 表示 没有更多数据
							}
						} else {
							rescontent = obj.resStr;
							alert("error:" + rescode + "\nmsg:" + rescontent);
						}
					},
					error: function(code, type, msg) {
						alert("error:" + code + "\ntype = " + type + "\nmsg:" + msg);
					}
				});
			}
			// item 点击事件
			mui('.mui-table-view').on('tap', 'li', function() {
				id = this.getAttribute('id');
				obj = dataAllArray[id];
				alert('name = ' + obj.name + "\npwd = " + obj.pwd + "\nage = " + obj.age);
			});
		</script>
	</body>

</html>


服务端(接收mui.ajax的post请求,并做出响应)

@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		String requets = IOUtils.toString(req.getInputStream(), "utf-8");
		System.out.println("requets = " + requets);
		Gson mGson = new Gson();
		UserVo muser = mGson.fromJson(requets, UserVo.class);
		System.out.println("getIndex = " + muser.getIndex());
		int index = Integer.parseInt(muser.getIndex());
		JSONObject mJsonObject = new JSONObject();
		mJsonObject.put("resCode", "200");
		mJsonObject.put("resStr", "请求成功");
		JSONArray mArray = new JSONArray();
		if (index == 1) {
			count = 1;
		}
		if (index > 3) {

		} else {
			for (int i = 0; i < 5; i++) {
				JSONObject mJsonObjects = new JSONObject();
				mJsonObjects.put("name", "张三" + count);
				mJsonObjects.put("pwd", "123456" + count);
				mJsonObjects.put("age", "20" + count);
				mArray.add(mJsonObjects);
				count++;
			}
		}
		mJsonObject.put("resPonse", mArray);
		OutputStream out = resp.getOutputStream();
		out.write(mJsonObject.toString().getBytes("UTF-8"));
		out.close();

	}







效果图













  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值