Ajax异步加载后台数据(换页面,加强用户体验所用)

主页面代码,转向需要显示数据的页面

<a href="user/index">用户维护</a> 

基于ssm框架的后端控制器代码,接收前端请求,转向预定的页面

@RequestMapping("/index")
    public String index() {
        return "user/index";
    }

这个时候就要在index.jsp中使用Ajax加载数据,使用Ajax向后端控制器发出要求,需要在index中定义一个方法,并在页面加载的时候加载方法

function pageQuery(pageno){

                var loadingIndex = null;

                $.ajax({
                    type : "POST",
                    url  : "${APP_PATH}/user/pageQuery",
                    data : {
                            "pageno" : pageno,    //页数
                             "pagesize" : 2       //一页数据量
                    },
                    beforeSend : function(){
                        loadingIndex = layer.msg(‘数据处理中‘, {icon: 16}); //一种插件,等待时显示,提示用户等待
                    },
                    success : function(result){
                        layer.close(loadingIndex);
                        if(result.success){
             //如果成功返回数据,将数据渲染到页面的过程              .....
                    }
            });                                                            

后端控制器接收到请求后根据对应的url找到对应的控制器,实现控制器内的内容并将数据传回给前端渲染加载给用户

        @ResponseBody
    @RequestMapping("/pageQuery")
    public Object pageQuery(Integer pageno,Integer pagesize) {

                //自定义的ajax结果Bean,便于使用
        AJAXResult result = new AJAXResult();

        try{
            //分页查询
            Map<String,Object> map = new HashMap<String,Object>();
            map.put("start", (pageno-1)*pagesize);
            map.put("size", pagesize);
            map.put("queryText",queryText);

            List<User> users = userService.pageQueryDate(map);

            //总数据条数
            int totalsize =userService.pageQueryCount(map);
            //总页码
            int totalno = 0;
            if(totalsize % pagesize == 0) {
                totalno = totalsize / pagesize;
            }else {
                totalno = totalsize / pagesize + 1;
            }
            //分页对象
            //Page<User> userPage = new Page<User>();
            //userPage.setDatas(users);
            //userPage.setPageno(pageno);
            //userPage.setTotalno(totalno);
            //userPage.setTotalsize(totalsize);

            //result.setData(userPage);
            result.setSuccess(true);
        }catch(Exception e) {
            e.printStackTrace();
            result.setSuccess(false);
        }

        return result;
    }    

前端对数据的渲染过程,代码为前面省略的内容

var tableContent = "";
                            var pageContent = "";

                            var userPage = result.data;
                            var users = userPage.datas;

                            $.each(users,function(i,user){
                                tableContent += ‘<tr>‘;
                                tableContent += ‘  <td>‘+(i+1)+‘</td>‘;
                                tableContent += ‘  <td><input type="checkbox"></td>‘;
                                tableContent += ‘  <td>‘+user.loginacct+‘</td>‘;
                                tableContent += ‘  <td>‘+user.username+‘</td>‘;
                                tableContent += ‘  <td>‘+user.email+‘</td>‘;
                                tableContent += ‘  <td>‘;
                                tableContent += ‘      <button type="button" class="btn btn-success btn-xs"><i class=" glyphicon glyphicon-check"></i></button>‘;
                                tableContent += ‘      <button type="button" class="btn btn-primary btn-xs"><i class=" glyphicon glyphicon-pencil"></i></button>‘;
                                tableContent += ‘      <button type="button" class="btn btn-danger btn-xs"><i class=" glyphicon glyphicon-remove"></i></button>‘;
                                tableContent += ‘  </td>‘;
                                tableContent += ‘</tr>‘;
                            });

                            if(pageno > 1){
                                pageContent += ‘<li><a href="#" onclick="pageQuery(‘+(pageno-1)+‘)">上一页</a></li>‘;
                            }
                            for (var i=1;i <= userPage.totalno;i++){
                                if(i == pageno){
                                    pageContent += ‘<li class="active"><a href="#" onclick="pageQuery(‘+i+‘)">‘+i+‘</a></li>‘;
                                }else{
                                    pageContent += ‘<li><a href="#" onclick="pageQuery(‘+i+‘)">‘+i+‘</a></li>‘;
                                }
                            }

                            if(pageno < userPage.totalno){
                                pageContent += ‘<li><a href="#" onclick="pageQuery(‘+(pageno+1)+‘)">下一页</a></li>‘;
                            }

                            $("#userDate").html(tableContent);
                            $(".pagination").html(pageContent);
                        }else{
                            layer.msg("用户信息查询失败 ", {time:2000, icon:5, shift:6}, function(){

                            });
                        }

原文地址:https://www.cnblogs.com/ggj12138/p/10350747.html

时间: 2024-10-05 00:34:02

Ajax异步加载后台数据(换页面,加强用户体验所用)的相关文章

淘宝购物车页面 智能搜索框Ajax异步加载数据

如果有朋友对本篇文章的一些知识点不了解的话,可以先阅读此篇文章.在这篇文章中,我大概介绍了一下构建淘宝购物车页面需要的基础知识. 这篇文章主要探讨的是智能搜索框Ajax异步加载数据.jQuery的社区非常的活跃,许多朋友都在不同地方分享了很多优秀的插件.我在相关的网站上找过想实现类似功能的插件,但是没有找到.于是乎,自己动手丰衣足食.自己来搭建智能搜索框下拉列表.当然,如果有类似功能并且常维护Bug的插件,望留言交流. 源码地址: 淘宝购物车页面--PC端和移动端项目实战 首先需要先给大家打一根

Ajax异步加载数据及Redis缓存

针对网页分类条目的动态加载,图为页面的Head部分. //categoryListServlet准备分类数据 ProductService service = new ProductService(); List<Category> categoryList = service.findAllCategoryList(); response.setContentType("text/html; charset=utf-8"); Gson gson = new Gson();

使用ajax异步加载数据

使用ajax异步加载数据 controller为User赋值 @RequestMapping("/a2") public List<User> a2() { List<User> userlist = new ArrayList<User>(); userlist.add(new User("大头儿子", 6, "男")); userlist.add(new User("小头爸爸", 30,

ajax验证表单元素规范正确与否 ajax展示加载数据库数据 ajax三级联动

一.ajax验证表单元素规范正确与否 以用ajax来验证用户名是否被占用为例 1创建表单元素<input type="text" id="t"> 2在js中用keyup事件来进行操作 3创建ajax格式和内容:格式: $.ajax({ url:"哪一个服务端处理器", data:{"自己起名",所需要传给处理器的数据}, type:"post", dataType:"json"

ajax异步加载问题

使用ajax异步加载数据,在之后需要用到这个数据时,应该将之后的js一并写入ajax函数中,否则后面的js不能找到动态拼接的dom节点. 或者将其封装成方法,在ajax动态加载数据的最后调用该方法.

使用ajax()方法加载服务器数据

使用ajax()方法加载服务器数据 使用ajax()方法是最底层.功能最强大的请求服务器数据的方法,它不仅可以获取服务器返回的数据,还能向服务器发送请求并传递数值,它的调用格式如下: jQuery.ajax([settings])或$.ajax([settings]) 其中参数settings为发送ajax请求时的配置对象,在该对象中,url表示服务器请求的路径,data为请求时传递的数据,dataType为服务器返回的数据类型,success为请求成功的执行的回调函数,type为发送数据请求的

jQuery的AJax异步加载片段

主要用到load()方法以及getScript()方法,具体以一个例子说明: 在现有html文件中加载一个拟好的片段,以及在片段加载完成之前阻止用户进一步操作的弹出框. 首先是现有html代码,无任何内容: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>AJax异步加载</title> <scri

Android-LoaderManager异步加载数据库数据

LoaderManager异步加载数据库数据,是在(Activity/fragment/其他UI等) 加载大量的本地Database库表数据,由于数据大在加载过程中会导致UI线程阻塞,导致用户体验不好,Android为来解决这个问题,就设计了LoaderManager异步加载数据库数据 以前我在深圳做项目的时候,公司研发的APP是给中国联通人员在山上工作办事的,对这款APP要求离线数据,大量的离线数据(成百上千条)都是存储在本地Database表里面的,常常在查询本地Database数据的时候,

使用Ajax异步加载页面时,怎样调试该页面的Js

前言-本人不是干前端的,所以有的名词不专业 在前端中,有时候会遇到这样的框架,http://172.17.11.151:8060/frontend/backend.html#1.html (通过解析URL,把1.html异步加载到指定位置),不知道这样的框架叫什么名字. 那我们就会遇到一个问题,调试1.html的时候怎么办,通过浏览器掉出控制台找不到1.Html页面,无法加断点啊. 解决办法 在1.html 你所要调试位置加上一句代码  debugger;  就可以了,就是这么爽 可以调试了,可