因此,我使用Svelte+Vite与Dexiews作为我的离线数据库和路由,当我去一个页面,使查询Dexiews的响应是相当快的第一个请求,但当我去另一个页面,并回到同一个页面的响应时间变得缓慢,每一个查询。
我已经使用了类似this的索引,但它仍然发生。我错过了什么?有人能推荐任何替代品,比dexiews或pouchDB的性能更好的离线数据库吗?我目前正在尝试pouchDB作为替代品
这是我代码
let taskDone;
let taskOngoing;
let clustercount;
let tasks = [];
onMount(async function () {
// @ts-ignore
let clusterQuery = await db.cluster.reverse().sortBy("id");
clustercount = clusterQuery.length;
for (const clusters of clusterQuery) {
// @ts-ignore
taskDone = await db.task
.where("[cluster_id+status]")
.anyOf([clusters.id, 1], [clusters.id, 2])
.toArray();
// @ts-ignore
taskOngoing = await db.task
.where({ cluster_id: clusters.id })
.toArray();
tasks = [
{
cluster_id: clusters.id,
count_done: taskDone.length,
count_ongoing: taskOngoing.length,
cluster_name: clusters.name,
},
...tasks,
];
count++;
}
dispatch("showList", tasks);
});
1条答案
按热度按时间cgfeq70w1#
看起来每次调用onMount时,
tasks
数组被填充的越来越多。它是一个全局声明的变量吗?它应该是局部变量吗?