我正在使用Grid.js访问服务器数据并执行服务器端排序(这在Grid.js文档上)。
我的问题是,当我尝试排序一列时,它使服务器调用的次数等于可排序列的数量。
这里有一个关于JSFiddle的例子
<!DOCTYPE html>
<html lang="en">
<head>
<link
href="https://unpkg.com/gridjs/dist/theme/mermaid.min.css"
rel="stylesheet"
/>
</head>
<body>
<div id="wrapper"></div>
<script src="https://unpkg.com/gridjs/dist/gridjs.umd.js"></script>
<script type="text/javascript">
new gridjs.Grid({
columns: ['Title', 'Director', 'Producer'],
sort: {
multiColumn: false,
server: {
url: (prev, columns) => {
if (!columns.length) return prev;
const col = columns[0];
const dir = col.direction === 1 ? 'asc' : 'desc';
let colName = ['title', 'director', 'producer'][col.index];
return `${prev}&order=${colName}&dir=${dir}`;
}
}
},
pagination: {
limit: 3,
server: {
url: (prev, page, limit) => `${prev}?limit=${limit}&offset=${page * limit}`
}
},
server: {
url: 'https://swapi.dev/api/films?',
then: data => data.results.map(m => [
m.title, m.director, m.producer
]),
total: data => data.count
}
}).render(document.getElementById("wrapper"));
</script>
</body>
</html>
我想知道为什么它会这样,以及如何避免它。
多谢
这似乎是一个已知的库错误。Bug报告:https://github.com/grid-js/gridjs/issues/1317它仍然没有修复(2023年6月)。
似乎是sort
调用了那么多api