Skip to content

Commit 7fe2887

Browse files
committed
【博客端】为投票项组件添加延迟加载,使用定时器确保元素在视口内时获取投票详情
1 parent f222878 commit 7fe2887

File tree

1 file changed

+17
-11
lines changed

1 file changed

+17
-11
lines changed

blog/components/VoteItem.vue

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -224,26 +224,32 @@ const domId = computed(() => {
224224
})
225225
226226
let observer = null
227+
let timer = null
227228
onMounted(() => {
228229
nextTick(() => {
229-
if (voteItemRef.value) {
230-
// 如果元素不在视口内,创建 IntersectionObserver
231-
observer = new IntersectionObserver((entries) => {
232-
if (entries[0].isIntersecting) {
233-
getVoteDetail()
234-
observer.disconnect()
235-
observer = null
236-
}
237-
})
238-
observer.observe(voteItemRef.value)
239-
}
230+
timer = setTimeout(() => {
231+
if (voteItemRef.value) {
232+
// 如果元素不在视口内,创建 IntersectionObserver
233+
observer = new IntersectionObserver((entries) => {
234+
if (entries[0].isIntersecting) {
235+
getVoteDetail()
236+
observer.disconnect()
237+
observer = null
238+
}
239+
})
240+
observer.observe(voteItemRef.value)
241+
}
242+
}, 100)
240243
})
241244
})
242245
onUnmounted(() => {
243246
if (observer) {
244247
observer.disconnect()
245248
observer = null
246249
}
250+
if (timer) {
251+
clearTimeout(timer)
252+
}
247253
})
248254
</script>
249255

0 commit comments

Comments
 (0)