局部刷新与json

经过这两天的探索,终于实现了网页的局部刷新和json的运用。话不多说,上码-.-

 

后台封装将对象数据封装为json类型的数据:

json包org.json.jar包

 

 

JSONObject jsonCup = new JSONObject();

list = gDao.queryGoods(sql);

int i =0; 
for (Goods goods : list) { 


  JSONObject propertyJsont = new JSONObject();   //实例化JSONObj对象(属性)
  String id = goods.getGid();
  String name = goods.getGname();
  float price = goods.getGprice();
 //System.out.println(id + name + price);
  propertyJsont.put("id", id);            //将属性放入jsonCup对象
  propertyJsont.put("name", name);
  propertyJsont.put("price", price);
  jsonCup.put("goods" + i, propertyJsont); //将propertyJson放入jsonCup,一条键值对,代表一个商品数据
  i++;
}
out.println(jsonObject);

 

前端ajax获取json数据:

$.ajax({

  type: "post",
  url: "/15301197_hejiaheng/selectGoodsAjaxTest",
  cache: false,
  async: true,
  dataType:"json",

  success: function(data){
    //alert(JSON.stringify(data)); //将data解析为字符串,可以查看data的数据
    var html = ""; //定义html字符串

      for(var key in data){  //得到数据data,遍历
      var id = data[key]['id'];      //取出key值所对应的value值的id属性,这里有三个属性(id,name,price)
      var name = data[key]['name'];
      var price = data[key]['price'];
      html += "<p>编号:" + id + " 名称:" + name + " 价格:" + price + "</p>"; //拼接html字符
    }

  $("#goodsList").html(html); //html语句写入id = “goodsList ”的div中,即实现局部的数据加载。
},

  error: function(error){
    alert("获取信息失败!" + textStatus);
  }
});

 

这是一次性的局部刷新,还有按时的局部刷新,即计时器+这种方法可以实现。

经过测试后,我用它改进了以前小组做的一个网站作品上首页的快速查找功能,确实比全局刷新好多了。

 

posted @ 2017-03-01 21:54  Jia_Heng_He  阅读(1001)  评论(1编辑  收藏  举报