javascript - Bagaimana anda melaksanakan halaman muka depan?
滿天的星座
滿天的星座 2017-07-05 10:58:25
0
4
993

Saya boleh melaksanakan paging pada nodej hujung belakang, tetapi bagaimana untuk menulis kod bahagian hadapan?

滿天的星座
滿天的星座

membalas semua(4)
学霸

Saya rasa apa yang penyoal perlukan ialah skrip muka surat hadapan:

var getPageList = function(options){
    if(typeof options != "object" || !('pageId' in options) || !('pageRecord' in options)){
        throw Error("options Error! eg:{pageId:1, pageRecord:12, pageUrlTemplate : '/page/{PAGE}/'}");
    };
    options.pageId = parseInt(options.pageId);
    options.pageRecord = parseInt(options.pageRecord);
    options.pageSize = options.pageSize || 10;
    
    options.pageUrlTemplate = options.pageUrlTemplate || "?page={PAGE}";
    options.pageCount = parseInt(( options.pageRecord - 1 ) / options.pageSize ) + 1;
    
    var page = [];
    var firstPage = parseInt(( options.pageId - 1 ) / options.pageSize ) * options.pageSize + 1;
    
    options.getLink = options.getLink || function(pageId){
        return options.pageUrlTemplate.replace("{PAGE}", pageId);
    };
    
    page.push({
        name    : '首页',
        style   : options.pageId == 1 ? "disabled" : "",
        link    : options.getLink(1)
    });
    page.push({
        name    : '上一页',
        style   : options.pageId == 1 ? "disabled" : "",
        link    : options.getLink(options.pageId - 1)
    });
    for( var pageId = firstPage; pageId < firstPage + 10; pageId ++){
        if( pageId >= 1 && pageId <= options.pageCount ){
            page.push({
                name    : pageId,
                link    : options.getLink(pageId),
                style   : pageId == options.pageId ? "active" : ""
            });
        }
    }
    page.push({
        name    : '下一页',
        style   : options.pageId == options.pageCount ? "disabled" : "",
        link    : options.getLink(options.pageId + 1)
    });
    page.push({
        name    : '尾页',
        style   : options.pageId == options.pageCount ? "disabled" : "",
        link    : options.getLink(options.pageCount)
    });
    page.toString = function(){
        return page.map(function(item){
            return '<a href="' + item.link + '" class="' + item.style + '">' + item.name + '</a>';
        }).join("");
    };
    return page;
};

getPageList({pageId:1,pageRecord:1200});
/*
    [
        {"name":"首页","style":"disabled","link":"?page=1"},
        {"name":"上一页","style":"disabled","link":"?page=0"},
        {"name":1,"link":"?page=1","style":"active"},
        {"name":2,"link":"?page=2","style":""},
        {"name":3,"link":"?page=3","style":""},
        {"name":4,"link":"?page=4","style":""},
        {"name":5,"link":"?page=5","style":""},
        {"name":6,"link":"?page=6","style":""},
        {"name":7,"link":"?page=7","style":""},
        {"name":8,"link":"?page=8","style":""},
        {"name":9,"link":"?page=9","style":""},
        {"name":10,"link":"?page=10","style":""},
        {"name":"下一页","style":"","link":"?page=2"},
        {"name":"尾页","style":"","link":"?page=120"}
    ]
*/
'' + getPageList({pageId:1,pageRecord:1200,pageUrlTemplate:'/category/{PAGE}/view'});
/*
    <a href="/category/1/view" class="disabled">首页</a>
    <a href="/category/0/view" class="disabled">上一页</a>
    <a href="/category/1/view" class="active">1</a>
    <a href="/category/2/view" class="">2</a>
    <a href="/category/3/view" class="">3</a>
    <a href="/category/4/view" class="">4</a>
    <a href="/category/5/view" class="">5</a>
    <a href="/category/6/view" class="">6</a>
    <a href="/category/7/view" class="">7</a>
    <a href="/category/8/view" class="">8</a>
    <a href="/category/9/view" class="">9</a>
    <a href="/category/10/view" class="">10</a>
    <a href="/category/2/view" class="">下一页</a>
    <a href="/category/120/view" class="">尾页</a>
*/

Jika poster tersebut menggunakan AngularJS, anda boleh memuat turun dan menggunakan projek kecil sumber terbuka saya secara langsung: ng-penomboran.

滿天的星座

Halaman depan menulis terus
1, 2, 3, 4, 5....
Apabila diklik, nombor yang sepadan seperti '4' dihantar ke bahagian belakang
Halaman belakang menulis pernyataan SQL seperti : pilih * daripada tab had a *10,b

Anda sepatutnya dapat memahami sql ini,

Nota: Jika pangkalan data mempunyai banyak data, menggunakan SQL ini tidak cekap

给我你的怀抱

Hujung hadapan menghantar permintaan mengikut parameter yang diperlukan oleh bahagian belakang Jika anda menghantar sebarang parameter untuk mendapatkan data yang sepadan, anda boleh mencapai paging iaitu anda perlu menghantar ajax setiap kali anda membuka halaman

伊谢尔伦

Sebagai contoh. Latar belakang melakukan paging 200 keping data setiap halaman dan menghantarnya ke bahagian hadapan, dan mengembalikan jumlah halaman. Bahagian hadapan boleh memaparkan bilangan item yang berbeza seperti 10, 20, 50, 100, dsb. setiap halaman. Bahagian hadapan membuat pengiraan dan sepadan dengan nombor halaman muka depan dengan nombor halaman halaman latar belakang. Hanya ambil data pada setiap halaman terus daripada 200 item. Seperti sudut, ng-repeat="item in items.slice(page*10, 10)". Merangkum perintah dan ia berfungsi setiap masa

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan