`

JQuery中实现Ajax与服务器通过json交互数据

 
阅读更多

1.JQuery中的简单的使用ajax。

$.ajax({ //一个Ajax过程 
	type: "post", //以post方式与后台沟通 
	url : "get_location_by_id", //与此页面沟通 
	data: 'device_id=' + this.nextSibling.id, 
	beforeSend: function(){
		var win = $.messager.progress({
                title:'Please waiting',
                msg:'Loading data...'
            });
	},
	complete: function(){
		//AJAX请求完成时隐藏loading提示
		$(document).ready(function(){$.messager.progress('close');});
	},
	success : function(msg) {
		//更新数据
		if (msg != "") {
			var total = eval(msg);
			if(total.length == 0){
				change_map_default();
				$.messager.show({
	                title:'友情提示:',
	                msg:'不好意思,你的这个设备还没有地理位置的记录。',
	                timeout:5000,
	                showType:'slide'
	            });
			}
			for ( var index = 0; index < total.length; index++) {
				if (index == 0) {
					change_map(total[index].longitude, total[index].latitude);
				} else {
					addPolyline(total[index - 1].longitude, total[index - 1].latitude,
							total[index].longitude, total[index].latitude);
				}
				var myCompOverlay = new ComplexCustomOverlay(
						new BMap.Point(total[index].longitude, total[index].latitude),
						total[index].time, "地点为:(" + total[index].longitude + "," + total[index].latitude + ")");
				mp.addOverlay(myCompOverlay);
				add_marker(total[index].longitude, total[index].latitude);
			}
		}
	}
});

2.各种浏览器对childNodes的解析不同,要特别注意。

3.百度地图api使用,在自己网页中添加百度地图。

function change_map(longitude, latitude) {
	var mp = new BMap.Map("container");
	var point = new BMap.Point(longitude, latitude);
	mp.centerAndZoom(point, 15);
	mp.enableScrollWheelZoom();
	mp.enableKeyboard();
	mp.enableContinuousZoom();
	mp.enableInertialDragging();
	mp.addControl(new BMap.NavigationControl());
	mp.addControl(new BMap.ScaleControl());
	mp.addControl(new BMap.OverviewMapControl());
	window.mp = mp;
}

 4.百度地图添加折线。

//向地图中添加线函数
function addPolyline(from_longitude, from_latitude , to_longitude, to_latitude) {
	var line = new BMap.Polyline( [ new BMap.Point(from_longitude, from_latitude),
			new BMap.Point(to_longitude, to_latitude) ], {
		strokeStyle : "dashed",
		strokeWeight : 2,
		strokeColor : "blue",
		strokeOpacity : 0.6
	});
	mp.addOverlay(line);
}

 5.添加标注信息。

ComplexCustomOverlay.prototype = new BMap.Overlay();
ComplexCustomOverlay.prototype.initialize = function(map) {
	this._map = map;
	var div = this._div = document.createElement("div");
	div.style.position = "absolute";
	div.style.zIndex = BMap.Overlay.getZIndex(this._point.lat);
	div.style.backgroundColor = "#EE5D5B";
	div.style.border = "1px solid #BC3B3A";
	div.style.color = "white";
	div.style.height = "18px";
	div.style.padding = "2px";
	div.style.lineHeight = "18px";
	div.style.whiteSpace = "nowrap";
	div.style.MozUserSelect = "none";
	div.style.fontSize = "12px"
	var span = this._span = document.createElement("span");
	div.appendChild(span);
	span.appendChild(document.createTextNode(this._text));
	var that = this;

	var arrow = this._arrow = document.createElement("div");
	arrow.style.background = "url(http://map.baidu.com/fwmap/upload/r/map/fwmap/static/house/images/label.png) no-repeat";
	arrow.style.position = "absolute";
	arrow.style.width = "11px";
	arrow.style.height = "10px";
	arrow.style.top = "22px";
	arrow.style.left = "10px";
	arrow.style.overflow = "hidden";
	div.appendChild(arrow);
	
	div.onmouseover = function() {
		this.style.backgroundColor = "#6BADCA";
		this.style.borderColor = "#0000ff";
		this.getElementsByTagName("span")[0].innerHTML = that._overText;
		arrow.style.backgroundPosition = "0px -20px";
	};
	
	div.onmouseout = function() {
		this.style.backgroundColor = "#EE5D5B";
		this.style.borderColor = "#BC3B3A";
		this.getElementsByTagName("span")[0].innerHTML = that._text;
		arrow.style.backgroundPosition = "0px 0px";
	};
	
	mp.getPanes().labelPane.appendChild(div);
	return div;
};
ComplexCustomOverlay.prototype.draw = function() {
	var map = this._map;
	var pixel = map.pointToOverlayPixel(this._point);
	this._div.style.left = pixel.x - parseInt(this._arrow.style.left) + "px";
	this._div.style.top = pixel.y - 30 + "px";
};
 
分享到:
评论
2 楼 txlong_onz 2014-02-27  
夜神月 写道
你好,我看你在beforeSend方法里获取里进度条对象win,但之后没有用,为什么呢?
$.messager.progress是全局单例的吗?比如说我一下开两个进度条,之后关闭。目前我测试是两个一起关。有办法在两个窗口开启两个进度条,分别不同控制关闭吗?

应该是单例的,后边通过$.messager.progress('close');关闭。两个窗口我没有做过,没法回复。
1 楼 夜神月 2014-02-09  
你好,我看你在beforeSend方法里获取里进度条对象win,但之后没有用,为什么呢?
$.messager.progress是全局单例的吗?比如说我一下开两个进度条,之后关闭。目前我测试是两个一起关。有办法在两个窗口开启两个进度条,分别不同控制关闭吗?

相关推荐

    jQuery Ajax前后端使用JSON进行交互示例

    本篇文章主要介绍了jQuery Ajax前后端使用JSON进行交互示例,实现前端通过jQuery Ajax传输json到后端,后端接收json,对json进行处理,后端返回一个json给前端,有兴趣的可以了解一下。

    利用JQuery jsonp实现Ajax跨域请求json数据

    但为了实现数据交互,开发者常使用JSONP(JSON with Padding)这一技术来规避同源策略,实现在客户端跨域获取JSON数据。本篇文章将详细讲解如何利用jQuery的jsonp方法实现Ajax跨域请求,以及如何在服务器端使用.Net...

    jQuery中ajax请求后台返回json数据并渲染HTML的方法

    jQuery中的AJAX请求是一种非常常见的前端异步数据交互方式,它的作用是使得页面无需重新加载即可向服务器请求数据,并将数据动态地加载到页面中。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它...

    Ajax与servlet后台交互,数据类型JSON

    在Ajax的回调函数中,接收到JSON数据后,可以通过JSON.parse()方法将其转换为JavaScript对象,然后进行操作。 ```javascript if (xhr.readyState == 4 && xhr.status == 200) { var jsonData = JSON.parse(xhr....

    SpringMVC利用Ajax,JQuery交互Json

    总结,通过SpringMVC、Ajax和JQuery,我们可以实现高效的前后端数据交互,使Web应用更加动态和用户友好。记住,理解并熟练掌握这些技术是提升Web开发能力的关键。在实际项目中,还要考虑安全性、性能优化等方面,...

    struts2+json+jquery实现ajax数据的存取

    通过以上步骤,"Struts2+JSON+jQuery实现Ajax数据的存取"能够有效地提高Web应用的交互性和响应速度,使得用户在不刷新整个页面的情况下,也能获取并处理服务器的新数据。在实际项目中,这通常用于实现表格数据的分页...

    SSH+jQuery+json 实现的Ajax操作,绝对精华,代码简练清晰,绝对能看明白

    总结来说,这个压缩包提供的示例是一个基于SSH后端、jQuery前端和JSON数据交换的Ajax级联操作实现,旨在展示如何优雅地处理Web应用中的动态数据加载。这种技术组合大大提高了用户体验,因为用户无需刷新整个页面就能...

    jquery与java交互通过json传递数据的经典实例

    这个经典实例展示了jQuery、AJAX、Java和JSON在Web开发中的协同工作,通过这种方式,前端和后端可以高效地交换数据,实现动态更新页面而无需刷新整个页面,提升了用户体验。学习并熟练掌握这些技术对于成为一名优秀...

    jQuery中使用Ajax获取JSON格式数据示例代码.pdf

    `$.ajax()` 方法是 jQuery 中实现 Ajax 通信的主要方法。它接受一个配置对象,该对象可以包含多种属性来配置 Ajax 请求。这些属性包括请求的类型(`type`)、请求的 URL(`url`)、预期服务器返回的数据类型(`...

    Struts2 与Jquery Ajax的json数据交换的典型范例

    在Struts2与jQuery的Ajax交互中,JSON扮演着数据载体的角色,可以高效地传输数据。 **2. Struts2 JSON插件** 为了支持JSON数据交换,Struts2提供了一个JSON插件。首先,需要在项目中添加该插件的依赖,并在struts....

    使用jquery的方式通过ajax处理json格式的数据

    在Web开发中,jQuery是一个非常流行的JavaScript库,它极大地简化了DOM操作、事件处理和Ajax交互。本教程将深入探讨如何使用jQuery通过Ajax处理JSON格式的数据。JSON(JavaScript Object Notation)是一种轻量级的...

    Servlet利用Ajax,JQuery交互Json

    总结来说,Servlet利用Ajax和JQuery实现了无刷新的交互体验,Json作为数据交换格式,使得前后端的数据传输变得更加高效和便捷。这四者结合,为现代Web应用提供了强大的功能和优秀的用户体验。在实际项目中,开发者...

    jQuery-ajax-json实现自动轮播图.rar

    然而,如果我们想要从服务器动态获取图片数据,我们可以使用ajax从后台获取json格式的图片列表。假设我们的json数据如下: ```json { "images": [ {"url": "image1.jpg", "title": "Image 1"}, {"url": "image2....

    Jquery ajax json 总结

    总结来说,JQuery AJAX 提供了与服务器异步交互的能力,而 JSON 则是高效的数据交换格式。两者结合使用,可以实现高效的前后端数据通信,提升用户体验,减少不必要的页面刷新。在实际项目中,了解并熟练掌握这两项...

    struts2.1.8+json+jquery1.3实现ajax

    总结起来,这个项目结合了Struts2的Action和JSON支持,利用jQuery的Ajax功能,实现了客户端与服务器之间的数据交互,达到了动态更新页面的目的。对于Web开发者来说,了解这种技术组合有助于提高开发效率和用户体验。

    JQuery_Ajax_AutoComplete_使用JSON数据

    在探讨如何利用jQuery的AutoComplete插件结合Ajax与JSON数据实现自动补全功能之前,我们首先需要理解几个关键概念:jQuery、Ajax、JSON以及AutoComplete。 ### jQuery简介 jQuery是一款快速、简洁的JavaScript库,...

    jQuery读取json数据

    在Web应用程序中,JSON经常被用作服务器与客户端之间传输数据的主要方式,因为它可以直接被JavaScript语言解析,无需额外的转换。 jQuery提供了一个强大的`$.ajax()`函数,它是处理所有Ajax请求的核心方法。通过这...

    ajax使用jquery json实现的省市县三级联动经验总结

    通过Ajax结合jQuery和JSON,可以有效地实现省、市、县三级联动功能,不仅提升了用户体验,也优化了前后端数据交互过程。在实际项目中,开发者可以根据具体需求调整代码逻辑,如增加错误处理、优化数据展示等,进一步...

    使用JQuery实现从JSON对象转换为form提交数据

    转换后的数据可以与jQuery的`$.ajax()`或`$.post()`方法结合,以异步方式发送到服务器。例如: ```javascript var jsonData = { name: 'John', age: 30 }; var formData = jsonToFormParams(jsonData); $.ajax...

    PHP-JQuery-Ajax-json

    在Ajax请求中,JSON常被用作数据传输格式,因为它可以直接被JavaScript解析为对象,与服务器之间的数据交互更加高效。 5. **中文说明.txt**: 这个文件可能包含了关于如何使用这些组件的中文指南,对于初学者来说...

Global site tag (gtag.js) - Google Analytics