The goal of this tutorial is to guide you on how to implement pagination and breadcrumbs on your website. Pagination is a user interface pattern that divides content into separate pages. It's especially useful when you have a lot of data to display at once. Breadcrumbs, on the other hand, are a secondary navigation scheme that reveals the user’s location on a website.
In this tutorial, you will learn:
Prerequisites:
Pagination involves two aspects: frontend and backend. The backend handles the retrieval of the correct portion of data, while the frontend handles the display and user interaction.
On the frontend, pagination involves creating links that correspond to different pages of content. For example:
<div class="pagination">
<a href="#">«</a>
<a href="#">1</a>
<a href="#" class="active">2</a>
<a href="#">3</a>
<a href="#">4</a>
<a href="#">5</a>
<a href="#">»</a>
</div>
This is a simple pagination UI. The laquo
and raquo
are used to go to the previous and next page, respectively.
On the backend, you need to retrieve data based on the page number. Backend implementation varies with different server-side languages. Here is an example using Node.js with Express and MongoDB:
app.get('/data', function(req, res) {
var pageNo = parseInt(req.query.pageNo)
var size = parseInt(req.query.size)
var query = {}
if(pageNo < 0 || pageNo === 0) {
response = {"error" : true, "message" : "invalid page number, should start with 1"};
return res.json(response)
}
query.skip = size * (pageNo - 1)
query.limit = size
// Find some documents
DB.collection('data').find({}, {}, query, function(err, data) {
// do something with data
})
})
This code snippet retrieves data from a MongoDB database in pages. It uses the query parameters pageNo
and size
to calculate which documents to skip and limit.
Breadcrumbs are a form of secondary navigation that shows a user's location on a website. They are a contextual aid. They can be implemented simply using HTML and CSS.
Here's a simple example of a breadcrumb:
<ul class="breadcrumb">
<li><a href="#">Home</a></li>
<li><a href="#">Pictures</a></li>
<li><a href="#">Summer 15</a></li>
<li>Italy</li>
</ul>
The last item in the breadcrumb is the current page, and it's not a link.
Here's a complete example of pagination using Node.js, Express, and MongoDB:
// Server setup
const express = require('express');
const app = express();
const MongoClient = require('mongodb').MongoClient;
let db;
MongoClient.connect('mongodb://localhost:27017/mydb', (err, client) => {
if (err) return console.log(err);
db = client.db('mydb');
app.listen(3000, () => {
console.log('listening on 3000');
});
});
app.get('/data', (req, res) => {
let pageNo = parseInt(req.query.pageNo);
let size = parseInt(req.query.size);
let query = {};
if (pageNo < 0 || pageNo === 0) {
response = { "error": true, "message": "invalid page number, should start with 1" };
return res.json(response);
}
query.skip = size * (pageNo - 1);
query.limit = size;
db.collection('data').find({}, {}, query, function (err, data) {
// Send data as response
res.json(data);
});
});
Here's a complete example of breadcrumbs using HTML and CSS:
<ul class="breadcrumb">
<li><a href="#">Home</a></li>
<li><a href="#">Pictures</a></li>
<li><a href="#">Summer 15</a></li>
<li>Italy</li>
</ul>
<style>
.breadcrumb {
padding: 10px 0;
list-style: none;
background-color: #f5f5f5;
}
.breadcrumb li {
display: inline-block;
margin-right: 10px;
}
.breadcrumb li a {
color: #0275d8;
text-decoration: none;
}
</style>
In this tutorial, we learned how to implement pagination and breadcrumbs in a website. We covered both the frontend and backend aspects of pagination and how to create a simple breadcrumb navigation using HTML and CSS.
You can further learn how to customize the appearance of pagination and breadcrumbs using CSS. You can also explore different server-side languages and how they handle pagination.
For further practice, try implementing pagination and breadcrumbs in different server-side languages.