fix(loginUsername): add throttle for search (#39)

This commit is contained in:
BeADre 2020-10-22 17:21:23 +08:00 committed by GitHub
parent f99dbac95f
commit af30eb431d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 1 deletions

View File

@ -58,3 +58,13 @@ export function shuffleAList(list) {
});
return newSorts;
}
export function throttle(fn, time) {
let isRun = false;
return function () {
if (isRun) return;
isRun = true;
fn.apply(this, arguments);
setTimeout(() => { isRun = false }, time);
}
}

View File

@ -10,7 +10,7 @@
<input
:placeholder="$t('login.searchHolder')"
v-model="keyword"
@keydown.enter="search"
@keydown.enter="throttleSearch"
/>
</div>
</div>
@ -53,6 +53,7 @@ import NProgress from "nprogress";
import { search } from "@/api/others";
import Cookies from "js-cookie";
import { userPlaylist } from "@/api/user";
import { throttle } from '@/utils/common';
import ButtonTwoTone from "@/components/ButtonTwoTone.vue";
@ -74,6 +75,7 @@ export default {
methods: {
...mapMutations(["updateUser", "updateUserInfo"]),
search() {
if (!this.keyword) return;
search({ keywords: this.keyword, limit: 9, type: 1002 }).then((data) => {
this.result = data.result.userprofiles;
this.activeUser = this.result[0];
@ -93,6 +95,9 @@ export default {
this.$router.push({ path: "/library" });
});
},
throttleSearch: throttle(function () {
this.search();
}, 500)
},
};
</script>