javascript - 自己研究的分页,感觉ajax这里写的不太好,如何改进;

查看:64
本文介绍了javascript - 自己研究的分页,感觉ajax这里写的不太好,如何改进;的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="page.css">
</head>
<style>
    *{
        padding: 0px;
        margin: 0px;
    }
    *{ margin:0; padding:0; list-style:none;}
    a{ text-decoration:none;}
    a:hover{ text-decoration:none;}
    .tcdPageCode{padding: 15px 20px;text-align: left;color: #ccc;}
    .tcdPageCode a{display: inline-block;color: #428bca;display: inline-block;height: 25px;
    line-height: 25px;    padding: 0 10px;border: 1px solid #ddd;    margin: 0 2px;border-radius: 4px;vertical-align: middle;}
    .tcdPageCode a:hover{text-decoration: none;border: 1px solid #428bca;}
    .tcdPageCode span.current{display: inline-block;height: 25px;line-height: 25px;padding: 0 10px;
    margin: 0 2px;color: #fff;background-color: #428bca;    border: 1px solid #428bca;border-radius: 4px;vertical-align: middle;}
    .tcdPageCode span.disabled{    display: inline-block;height: 25px;line-height: 25px;padding: 0 10px;
    margin: 0 2px;    color: #bfbfbf;background: #f2f2f2;border: 1px solid #bfbfbf;border-radius: 4px;vertical-align: middle;}
    ul{
        list-style: none;
    }
    .wrap >ul > li{
        width: 250px;
        height: 350px;
        margin: 20px;
        /*border: 1px green solid;*/
        float: left;
        margin-bottom: 40px;
    }
    .wrap >ul > li>img{
        width: 100%;
        height: 100%;
    }
    .wrap >ul > li>p{
        text-align: center;
        line-height: 30px;
        height: 30px;
    }
    .wrap{
        margin: 100px auto;
        border: 1px solid red;
        height: 1800px;
        width: 1460px;
    }
</style>
<body>
  <div class = 'wrap'>
       <ul class='movieList'>
           <!--<li>-->
               <!--<img src="" alt="">-->
               <!--<p>电影名:惊天魔盗团</p>-->
           <!--</li>-->
       </ul>
      <!-- 代码部分begin -->
      <div class="tcdPageCode">
      </div>
  </div>
</body>
</html>
<script src="http://www.lanrenzhijia.com/ajaxjs/jquery.min.js"></script>
<script src="http://www.lanrenzhijia.com/ajaxjs/jquery.page.js"></script>

<script>
    $(function () {
       //初始化第一页数据;
        var urlApi = 'http://api.douban.com/v2/movie/top250'
        $.ajax({
            url:urlApi,
            type:'get',
            dataType:'jsonp',
            data:{
                //从第几条开始请求;
                "start" : 0,
                //请求多少条数据
                "count" : 10
            },
            success:function(data){
            //total总条数属性,计算总页数;
            var total = parseInt(data.total/10);
                result  = data.subjects;
                var str='';
                for(var i=0;i<result.length;i++){
                    var item = result[i];
                    str += '<li><img src="'+item.images.large
                            +'" alt=""><p>'+item.title+'</p></li>'
                }
                //追加渲染到页面
                $('.movieList').append(str)
                //分页插件,
                $(".tcdPageCode").createPage({
                    //pageCount:总页数
                    pageCount:total,
                    //current:当前页
                    current:1,
                    backFn:function(pageIndex){
                    //单击回调方法,pageIndex是当前页码
                        $(".movieList").empty();
                        var start = 10*pageIndex;
                        $.ajax({
                            url:urlApi,
                            type:'get',
                            dataType:'jsonp',
                            data:{
                                "start" : start,
                                "count" : 10,
                            },
                            success:function(data){
                                var result  = data.subjects;
                                var str='';
                                for(var i=0;i<result.length;i++){
                                    var item = result[i];
                                    str += '<li><img src="'+item.images.large
                                            +'" alt=""><p>'+item.title+'</p></li>'
                                }
                                $('.movieList').append(str)
                            }
                        })
                    }
                });
            }
        })
    })
</script>

解决方案

把js部分重构了,ajax部分重复,抽出来当一个函数,
另外,把每页大小作为常量了

$(function () {
       //初始化第一页数据;
        var urlApi = 'http://api.douban.com/v2/movie/top250',
            current = 1, // 当前页
            pageSize = 10; // 每页大小
        
        
        var download = function(start) {
            console.log(pageSize)
            // ajax 请求数据
            $.ajax({
                url:urlApi,
                type:'get',
                dataType:'jsonp',
                data:{
                    //从第几条开始请求;
                    "start" : start,
                    //请求多少条数据
                    "count" : pageSize
                },
                success:function(data) {
                    //total总条数属性,计算总页数;
                    var total = parseInt(data.total/10),
                        result = data.subjects,
                        str='';
                    for(var i=0;i<result.length;i++){
                        var item = result[i];
                        str += '<li><img src="'+item.images.large
                            +'" alt=""><p>'+item.title+'</p></li>'
                    }
                    //渲染到页面(不使用append)
                    $('.movieList').html(str);
                    //分页插件,
                    $(".tcdPageCode").createPage({
                        //pageCount:总页数
                        pageCount:total,
                        //current:当前页
                        current:current,
                        backFn:function(pageIndex){
                            //单击回调方法,pageIndex是当前页码
                            $(".movieList").empty();
                            var start = 10*pageIndex;
                            current = pageIndex; // 页数
                            download(start);
                        }
                    });
                }
            })
        }
        
        // 请求第一页数据
        download(0);
    })

这篇关于javascript - 自己研究的分页,感觉ajax这里写的不太好,如何改进;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆