mirror of
https://github.com/snachodog/just-the-docs.git
synced 2025-04-18 17:12:23 -06:00
Improved search responsiveness for many results
This commit is contained in:
parent
0421ab7f82
commit
16628f2b8e
@ -118,6 +118,7 @@ function searchLoaded(index, docs) {
|
|||||||
var searchResults = document.getElementById('search-results');
|
var searchResults = document.getElementById('search-results');
|
||||||
var mainHeader = document.getElementById('main-header');
|
var mainHeader = document.getElementById('main-header');
|
||||||
var currentInput;
|
var currentInput;
|
||||||
|
var currentSearchIndex = 0;
|
||||||
|
|
||||||
function showSearch() {
|
function showSearch() {
|
||||||
document.documentElement.classList.add('search-active');
|
document.documentElement.classList.add('search-active');
|
||||||
@ -128,6 +129,8 @@ function searchLoaded(index, docs) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function update() {
|
function update() {
|
||||||
|
currentSearchIndex++;
|
||||||
|
|
||||||
var input = searchInput.value;
|
var input = searchInput.value;
|
||||||
if (input === '') {
|
if (input === '') {
|
||||||
hideSearch();
|
hideSearch();
|
||||||
@ -180,8 +183,25 @@ function searchLoaded(index, docs) {
|
|||||||
resultsList.classList.add('search-results-list');
|
resultsList.classList.add('search-results-list');
|
||||||
searchResults.appendChild(resultsList);
|
searchResults.appendChild(resultsList);
|
||||||
|
|
||||||
for (var i in results) {
|
addResults(resultsList, results, 0, 10, 100, currentSearchIndex);
|
||||||
var result = results[i];
|
}
|
||||||
|
|
||||||
|
function addResults(resultsList, results, start, batchSize, batchMillis, searchIndex) {
|
||||||
|
if (searchIndex != currentSearchIndex) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (var i = start; i < (start + batchSize); i++) {
|
||||||
|
if (i == results.length) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
addResult(resultsList, results[i]);
|
||||||
|
}
|
||||||
|
setTimeout(function() {
|
||||||
|
addResults(resultsList, results, start + batchSize, batchSize, batchMillis, searchIndex);
|
||||||
|
}, batchMillis);
|
||||||
|
}
|
||||||
|
|
||||||
|
function addResult(resultsList, result) {
|
||||||
var doc = docs[result.ref];
|
var doc = docs[result.ref];
|
||||||
|
|
||||||
var resultsListItem = document.createElement('li');
|
var resultsListItem = document.createElement('li');
|
||||||
@ -335,7 +355,6 @@ function searchLoaded(index, docs) {
|
|||||||
resultTitle.appendChild(resultRelUrl);
|
resultTitle.appendChild(resultRelUrl);
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
function addHighlightedText(parent, text, start, end, positions) {
|
function addHighlightedText(parent, text, start, end, positions) {
|
||||||
var index = start;
|
var index = start;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user