Ajax请求之后台处理
项目中需要用到一些Ajax来做一些异步的请求处理,主要是多级联动,后台的代码怎么写效率更高一些呢?
后台框架SpringMVC+Hibernate
方案一用AjaxSelectRequestDAO为AjaxSelectRequestServiceImpl提供数据访问,并且实现了依据请求类型request和请求id对不同数据库表的访问,并返回对应的List;
方案二用AjaxSelectRequestServiceImpl持有了各类请求的DAO数据库访问各自的一个对象,通过不同的对象为提供不同的数据库访问服务;
个人的一些看法:
方案一仅持有一个数据库访问层的访问对象,对于频繁的Ajax访问请求,处理时创建的对象少一些,至少创建的DAO引用少,但是他破坏了数据访问的底层完整性,也就是说,数据库不同类型的访问应有不同的DAO来处理
方案二保持了数据库底层访问的访问完整性,但对于频繁Ajax处理,会力不从心,虽然Spring会做好持有对象的创建工作,可是对于仅仅一个Ajax请求,就创建了N多个DAO的引用,用完就被废弃,如果不及时垃圾回收,down掉都有可能
彰显智慧火花,说出你的想法,大家共分享,齐进步~~~
后台框架SpringMVC+Hibernate
//web:
//AjaxSelectRequestController
public class AjaxSelectRequestControllerimplements Controller{
private AjasSelectRequestService ajaxselectrequestservice;
public void setAjaxselectrequestservicee(AjasSelectRequestService ajaxselectrequestservice) {
this.ajaxselectrequestservice = ajaxselectrequestservice;
}
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
request.setCharacterEncoding("GBK");
response.setCharacterEncoding("UTF-8");
String type = request.getParameter("type");
String id = request.getParameter("id");
String xml_start = "<selects>";
String xml = ajaxselectrequestservice.getXmlByTypeAndIDService(type, id);
String xml_end = "</selects>";
String last_xml = xml_start + xml + xml_end;
response.getWriter().write(last_xml);
return null;
}
}
//service
//方案一:
//AjasSelectRequestServiceImpl
public AjasSelectRequestServiceImpl implements AjasSelectRequestService {
private AjaxSelectRequestDAO ajaxrequestdao;
public String getXmlByTypeAndIDService(String type, String id){
if(Strutils.isStringNotNull(type) && Strutils.isStringNotNull(id)) {
if("province".equals(type)) {
AjasSelectRequestServiceImpl
public AjasSelectRequestServiceImpl implements AjasSelectRequestService {
private AjaxSelectRequestDAO ajaxrequestdao;
public String getXmlByTypeAndIDService(String type, String id){
if(Strutils.isStringNotNull(type) && Strutils.isStringNotNull(id)) {
if("province".equals(type)) {
ajaxrequestdao...
}
if("city".equals(type)) {
ajaxrequestdao ...
}
if("area".equals(type)) {
ajaxrequestdao...
}
if("school".equals(type)) {
ajaxrequestdao ...
}
if("college".equals(type)) {
ajaxrequestdao...
}
if("major".equals(type)) {
ajaxrequestdao...
}
if("class".equals(type)) {
ajaxrequestdao...
}
...
}
}
}
//方案二:
AjasSelectRequestServiceImpl
public AjasSelectRequestServiceImpl implements AjasSelectRequestService {
private ProvinceManageDAO provincemanagedao;
private CityManageDAO citymanagedao;
private AreaManageDAO areamanagedao;
private SchoolManageDAO schoolmanagedao;
private CollegeManageDAO collegemanagedao;
private MajorManageDAO majormanagedao;
private ClassManageDAO classmanagedao;
public String getXmlByTypeAndIDService(String type, String id){
if(Strutils.isStringNotNull(type) && Strutils.isStringNotNull(id)) {
if("province".equals(type)) {
provincemanagedao ...
}
if("city".equals(type)) {
citymanagedao...
}
if("area".equals(type)) {
areamanagedao...
}
if("school".equals(type)) {
schoolmanagedao...
}
if("college".equals(type)) {
collegemanagedao...
}
if("major".equals(type)) {
majormanagedao...
}
if("class".equals(type)) {
classmanagedao...
}
...
}
}
}方案一用AjaxSelectRequestDAO为AjaxSelectRequestServiceImpl提供数据访问,并且实现了依据请求类型request和请求id对不同数据库表的访问,并返回对应的List;
方案二用AjaxSelectRequestServiceImpl持有了各类请求的DAO数据库访问各自的一个对象,通过不同的对象为提供不同的数据库访问服务;
个人的一些看法:
方案一仅持有一个数据库访问层的访问对象,对于频繁的Ajax访问请求,处理时创建的对象少一些,至少创建的DAO引用少,但是他破坏了数据访问的底层完整性,也就是说,数据库不同类型的访问应有不同的DAO来处理
方案二保持了数据库底层访问的访问完整性,但对于频繁Ajax处理,会力不从心,虽然Spring会做好持有对象的创建工作,可是对于仅仅一个Ajax请求,就创建了N多个DAO的引用,用完就被废弃,如果不及时垃圾回收,down掉都有可能
彰显智慧火花,说出你的想法,大家共分享,齐进步~~~
...全文
相关推荐
ajax请求后台接口数据与返回值处理js的实例讲解
本文将详细讲解如何使用JavaScript和jQuery库来发起AJAX请求,获取后台接口数据,并根据返回值进行处理。
Java后台判断ajax请求及处理过程详解
在Java后台开发中,处理AJAX(Asynchronous JavaScript and XML)请求是一项常见的任务。
ajax前台后台跨域请求处理方式
}});```### 后台处理跨域请求后台处理跨域请求主要是针对JSONP请求进行适当的响应格式调整。
JS实现定时任务每隔N秒请求后台setInterval定时和ajax请求问题
在本例中,我们要讨论的是如何使用`setInterval`结合AJAX(异步JavaScript和XML)请求来每隔N秒向后台发送请求。
Ajax实现定时刷新,获取后台数据实现技术
六、错误处理确保在处理Ajax请求时包含适当的错误处理代码,以应对网络故障、服务器错误等情况。


Web 开发
