From 39c8a9752ce35d8f0f3ed62d07b1375262b687cf Mon Sep 17 00:00:00 2001 From: Tienson Qin Date: Tue, 6 May 2025 22:01:26 +0800 Subject: [PATCH] fix(perf): don't refresh kv and custom queries when loading blocks Both kv and custom queries should be refreshed only if there're new db transactions. --- src/main/frontend/db/async.cljs | 2 +- src/main/frontend/db/react.cljs | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/frontend/db/async.cljs b/src/main/frontend/db/async.cljs index 768c599a4e..3255cd4f7f 100644 --- a/src/main/frontend/db/async.cljs +++ b/src/main/frontend/db/async.cljs @@ -143,7 +143,7 @@ (remove empty?))] (when (seq tx-data) (d/transact! conn tx-data)) (when-not skip-refresh? - (react/refresh-affected-queries! graph affected-keys)))) + (react/refresh-affected-queries! graph affected-keys {:skip-kv-custom-keys? true})))) (if children-only? children block)) (p/catch (fn [error] diff --git a/src/main/frontend/db/react.cljs b/src/main/frontend/db/react.cljs index 0a1581094a..207ca7d233 100644 --- a/src/main/frontend/db/react.cljs +++ b/src/main/frontend/db/react.cljs @@ -173,7 +173,8 @@ (set-new-result! k result')))) (defn refresh-affected-queries! - [repo-url affected-keys] + [repo-url affected-keys & {:keys [skip-kv-custom-keys?] + :or {skip-kv-custom-keys? false}}] (util/profile "refresh!" (let [db (conn/get-db repo-url) @@ -186,7 +187,8 @@ [k' cache]))) @query-state) (into {})) all-keys (concat (distinct affected-keys) - (filter #(contains? #{:custom :kv} (first %)) (keys state)))] + (when-not skip-kv-custom-keys? + (filter #(contains? #{:custom :kv} (first %)) (keys state))))] (doseq [k all-keys] (when-let [cache (get state k)] (let [{:keys [query query-fn]} cache