js 实现 前端站内搜索
时间: 2024-01-21 07:02:55 浏览: 21
要实现前端站内搜索,需要以下步骤:
1. 获取搜索关键词:通过输入框等方式获取用户输入的搜索关键词。
2. 发起请求:根据用户输入的关键词,向后端发送请求,获取相关的搜索结果。
3. 显示搜索结果:将后端返回的搜索结果以列表或卡片的形式展示在页面上。
4. 进行排序和筛选:根据用户的需求,对搜索结果进行排序和筛选。
5. 实现搜索联想:在用户输入时,自动提示相关的搜索关键词。
以下是一个基本的实现:
HTML:
```html
<input type="text" id="search-input" placeholder="搜索">
<ul id="search-results"></ul>
```
JavaScript:
```javascript
const searchInput = document.querySelector('#search-input');
const searchResults = document.querySelector('#search-results');
searchInput.addEventListener('input', debounce(() => {
const keyword = searchInput.value.trim();
if (keyword.length > 0) {
fetch(`/search?q=${keyword}`)
.then(response => response.json())
.then(results => {
searchResults.innerHTML = '';
results.forEach(result => {
const li = document.createElement('li');
li.innerHTML = result.title;
searchResults.appendChild(li);
});
});
} else {
searchResults.innerHTML = '';
}
}, 300));
function debounce(fn, delay) {
let timer = null;
return function () {
clearTimeout(timer);
timer = setTimeout(() => {
fn.apply(this, arguments);
}, delay);
};
}
```
这个实现中,我们使用了 `fetch` 函数向后端发送搜索请求,并使用了 `debounce` 函数来限制搜索频率。在搜索结果返回后,我们将结果以列表项的形式展示在页面上。需要注意的是,这只是一个基本的实现,实际项目中还需要进行排序、筛选等操作。