"点击加载更多"是一种常见的网页交互模式,用于在用户点击按钮时动态加载更多内容,而不是一次性加载所有内容。这种模式可以提高页面加载速度和用户体验,特别是在处理大量数据时。
以下是一个简单的JavaScript实现,使用原生JavaScript和Fetch API来实现“点击加载更多”功能:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>点击加载更多示例</title>
</head>
<body>
<div id="content"></div>
<button id="loadMore">加载更多</button>
<script>
let page = 1;
const contentDiv = document.getElementById('content');
const loadMoreButton = document.getElementById('loadMore');
function loadData(page) {
fetch(`/api/data?page=${page}`)
.then(response => response.json())
.then(data => {
data.forEach(item => {
const div = document.createElement('div');
div.textContent = item.text;
contentDiv.appendChild(div);
});
})
.catch(error => console.error('Error:', error));
}
loadMoreButton.addEventListener('click', () => {
page++;
loadData(page);
});
// 初始加载第一页数据
loadData(page);
</script>
</body>
</html>
loadMoreButton.addEventListener('click', () => {
loadMoreButton.disabled = true;
page++;
loadData(page).then(() => {
loadMoreButton.disabled = false;
});
});
function loadData(page) {
return fetch(`/api/data?page=${page}`)
.then(response => {
if (!response.ok) throw new Error('Network response was not ok');
return response.json();
})
.then(data => {
data.forEach(item => {
const div = document.createElement('div');
div.textContent = item.text;
contentDiv.appendChild(div);
});
})
.catch(error => {
console.error('Error:', error);
alert('加载失败,请重试');
});
}
通过以上方法,可以有效实现并优化“点击加载更多”的功能。
领取专属 10元无门槛券
手把手带您无忧上云