后台的数据: public CustomerBean getCustomer(String cphone) {
Session session = sessionFactory.getCurrentSession();
Query query = session.createQuery("from CustomerBean where cphone ='"
+ cphone + "'");
return (CustomerBean) query.list().get(0);
}
前台:cphone.onblur = function(){
var params = {
cphone : cphone.value
}; 
$.ajax({
type: "get",
url: "<%=path%>/ajax/customerAction!customerName.action",
data: params,
dataType:"json", 
success: function(json){  
var customer = json.customer;
$("#cname").val(customer.cname);
},
error: function(json){
/*alert('该顾客未注册,请先录入顾客信息');
     window.parent.frames['frmright'].location.href="<%=path%>/operator/addCustomer.jsp";*/
   alert("aaa");
return false;
},
    complete: function (XHR, TS) { XHR = null }
});
};

解决方案 »

  1.   

    用Struts2+Spring3+hibernate4整合框架做的,
    来人救命啊
      

  2.   

    这么久,应该不是ajax本身消耗的。
      

  3.   

    那这个是为什么呢?
    我之后还有不取三个对象的ajax,它直接导致我内存溢出,网页奔溃了,我也跟着奔了
      

  4.   

    除了ajax的调用,其他js,jquery的使用都很正常
      

  5.   

    我觉得你应该看看你AJAX请求的代码吧,是不是它耗时很久!
      

  6.   

    浏览器中输入
    <%=path%>/ajax/customerAction!customerName.action
    看一下结果和速度
      

  7.   

    将chrome f12 network分析数据发出来看看。
      

  8.   

    好吧,我找到问题了,确实和ajax无关,和我数据库一对多的Set集合有关,怎么做才能让它不执行查询Set里的对象呢
      

  9.   

    我现在把one-to-many的配置和Bean里Set集合给删了,可以解决加载慢的问题,如果不把它删了,怎么配置它才不会自己去执行set里的查询语句呢
      

  10.   

    好吧,我找到问题了,确实和ajax无关,和我数据库一对多的Set集合有关,怎么做才能让它不执行查询Set里的对象呢建议复杂的查询直接用sql语句,有时候一对多这种配置会导致查询非最优
      

  11.   

    设置set为懒加载能解决问题?
      

  12.   

    查询的内容是根据你的查询语句来的,如果你直接查询整个对象是没办法不查出来你的hbm.xml里面定义的内容的
    直接去掉不需要的一对多查询
    或者采用指定参数构造方法,new出需要查询对象来
    或者直接采用sql把set设置为懒加载的话在一些引用远程调用下会有问题,调用的对象将会是一个代理对像,某些情景下会导致一些错误
      

  13.   

    谢谢各位大大的帮助,现在终于深刻体会lazy的作用了.....
    至于查询效率问题,还有待继续研究
      

  14.   

    个人觉得,不是ajax=的问题,还是你后台有问题,后台反馈的时间应该很慢才对...