前端js接入后台接口数据的一点简单总结

在前端接入后端接口数据时,刚开始入门的小白,基本都是都是使用如下结构来接入:

function m1(){
   $.ajax({
    	type: 'post',
		url: basePath+"/interface/get?outsys=roma&name=asdf",
		data:{
		    params:{}
		},
		success: function(result) {
			console.log(result);
			eval('initChart_' + name + '(result)');
		}
	});
}

以上我把它称为散装的js方法,这样如果有多个有多个接口需要对接,就会有多个这种散装function();

升级改造后如下,拿一个项目来举例:

/**
 * 事项列表
 */
var sxml_list = function(){
	
	/**
	 * 接口集
	 * 包含每个图表,的测试地址和正式地址
	 */
	var apiArray = {
		"0":{"url":"getEventList","params":{},"testUrl":"","desc":"根据条件筛选事项列表"},
		"1":{"url":"getEventDetailByConfidition","params":{},"testUrl":"","desc":"根据条件筛选事项详情"},
		"2":{"url":"oneEventHasManyDuty","params":{"name":""},"testUrl":"","desc":"一事多责"}
	}
	
	
	var initChart_0 = function(result){
		console.log(result);
		var data = result.retJSON.result.retJSON.result;
		$('#row_count').text(data.length);
		$("#list").empty();
		if(data.length>0){
			let htmlstr = '';
			$.each(data,function(i,n){
				htmlstr += '<tr class="tr" eventId='+data[i].事项id+' >';
				htmlstr +=   '<td>'+(i+1)+'</td>';
				htmlstr +=   '<td>'+data[i].事项名称+''+(data[i].事项简述==null?'':'--'+data[i].事项简述)+'</td>';
				htmlstr += '</tr>';
				$("#list").html(htmlstr);
			});
			//将拼接好的字符串追加到tbody中
			$('.tr').bind('click',function(){
				sxml_list.apiArray['1'].params.eventId = $(this).attr('eventId');
				setTimeout(function(){
					sxml_list.init('1',true);
				},300);
				if($(this).hasClass('heighlight')){
					$(this).removeClass('heighlight');	
					return;
				}
				$('.tr').removeClass('heighlight');
				$(this).addClass('heighlight');
			})
		}
	}
	
	var initChart_1 = function(result){
		var data = result.retJSON.result;
		
		$("#sxmc").html(data[0].事项名称+''+(data[0].事项简述==null?'':'--'+data[0].事项简述));
//		$("#sxbm").html(data[0].事项编码)
//		$("#sxjs").html(data[0].事项简述)
		$("#glzr").html(data[0].部门名称)
		$("#glzt").html(data[0].部门名称)
		$("#glyj").html(data[0].管理依据==null?'--':data[0].管理依据)
		
		$("#ysdz").html(data[0].是否一事多责==null?"处理流程":"一事多责");
		
		data[0].是否一事多责==null?(show0()):(show())
		
		$("#sxlx").html(data[0].事项名称)
		$(".one-item").html("");
		
		//展示流程
		function show0(){
			$('.right .body .process').show();
			$(".one-n").hide();
			$("#czls").html(data[0].部门名称)
//			$("#glzt").html(data[0].部门名称)
		}
		
		//展示一事多责
		function show(){
			$('.right .body .process').hide();
			$(".one-n").show();
			sxml_list.apiArray['2'].deptName = data[0].部门名称+data[0].事项简述;
			sxml_list.apiArray['2'].params.name = data[0].事项名称;
			sxml_list.init('2',true);
		}
	}
	
	var initChart_2 = function(result){
		var data = result.retJSON.result;
		var oneData = [];
			
		if(data.length>0){
			for(var i in data){
				oneData.push({
					name:data[i].resume,
					bm:data[i].deptname
				})
			}
		}
		one_item_load(oneData);
	}
	
	//****获取数据接口***
	var getAjaxSources = function(name,dataType){
		if(dataType){
			return basePath+"/interface/get?outsys=roma&name="+apiArray[name].url;
		}else{
			return basePath+apiArray[name].testUrl;
		}
	}
	
	var init = function(name,dataType){
		try {
			/*统一访问*/
			var ajaxSources = getAjaxSources(name,dataType);
			$.ajax({
				type: 'post',
				url: ajaxSources,
				data:{
					params:JSON.stringify(apiArray[name].params)
				},
				success: function(result) {
					console.log(result);
					eval('initChart_' + name + '(result)');
				}
			});
		} catch(e) {}
	}
	
	return{
		init:init,
		apiArray:apiArray
	}
}();

这样把接口,变量,以及获取后端的ajax都拆分开来统一放到一个对象里面来管理,代码结构清晰明朗,复用性也比较高。

以上仅为工作中的小小总结。

有更好的代码结构及优化建议的朋友欢迎留言。

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Java大数据展示平台源码是一个完整的开源项目,它提供了展示大数据的功能,并且支持多种数据源的接入。用户可以通过这个平台来实时查看、分析和可视化大数据。 源码包括了前端和后端两部分,前端部分包括PC端和手机端的源码。PC端源码负责展示数据信息,提供交互界面和用户操作。手机端源码则是为了方便用户在移动设备上查看和管理大数据展示平台的功能。 后端部分的源码负责处理数据接入和处理,以及提供数据的API接口前端使用。后台管理源码是为了方便管理员对整个平台进行管理和配置,包括用户管理、数据源管理和权限控制等功能。 整个源码包含了多个模块,主要包括数据接入模块、数据处理模块、数据展示模块和用户管理模块等。数据接入模块负责从各种数据源中获取数据,包括数据库、文件和API接口等。数据处理模块负责对数据进行清洗、过滤和转换等处理操作。数据展示模块负责将处理后的数据进行可视化展示,包括图表、地图和报表等形式。用户管理模块负责管理用户的登录、权限和角色等信息。 源码的开发过程采用了Java的相关技术,包括Spring、Spring MVC和MyBatis等框架。前端部分使用了HTML、CSS和JavaScript前端技术,同时也采用了一些开源的前端框架和库来提高开发效率和用户体验。 通过部署这个源码,用户可以快速搭建并定制一个适合自己需求的大数据展示平台,支持多种数据接入和多种数据展示方式。同时,后台管理源码也提供了便捷的管理功能,方便管理员对整个平台进行配置和管理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值