惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

大猫的无限游戏
大猫的无限游戏
云风的 BLOG
云风的 BLOG
小众软件
小众软件
V
V2EX
博客园 - Franky
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
量子位
博客园 - 【当耐特】
雷峰网
雷峰网
WordPress大学
WordPress大学
Jina AI
Jina AI
Google DeepMind News
Google DeepMind News
N
Netflix TechBlog - Medium
爱范儿
爱范儿
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
阮一峰的网络日志
阮一峰的网络日志
IT之家
IT之家
Blog — PlanetScale
Blog — PlanetScale
Hugging Face - Blog
Hugging Face - Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
V
Visual Studio Blog
Microsoft Security Blog
Microsoft Security Blog

Oyiso's Blog

后端开发之Go语言学习心得 – Oyiso's Blog 安装和使用Strapi时一些令人抓狂的问题 – Oyiso's Blog 手撸一个WordPress又拍云存储功能 – Oyiso's Blog 又又又更新了一下主题,创造了一个画展模板,以后可以欣赏到自己收藏的美图了 – Oyiso's Blog 最近在研究新的主题,这是属于own的主题,2024年新年主题 Oyiso's Theme 首次亮相 – Oyiso's Blog JS中使用getBoundingClientRect()方法获取精确的元素距离 – Oyiso's Blog 实现元素hover效果:从左出现从右离开的下划线 – Oyiso's Blog
为了做一个类似朋友圈的模板,我把评论区功能重写了 – Oyiso'...
神秘布偶猫 · 2024-03-10 · via Oyiso's Blog

This post was updated 705 days ago and some of the ideas may be out of date.

本来评论区写的很简单,打开文章就能获取评论。但是我做了一个片刻模板(类似朋友圈),每一条帖子都有一个独立的点赞和评论功能,那这种怎么做呢,直接循环来判断呗,是不是很简单?

确实如此,但我在此花费了几小时,因为每次点击打开新的帖子的评论区的时候都会触发请求评论,添加一个新的事件监听器,有点击事件和滚动事件。在我调试的时候bug连续不断,要么获取的不准确,要么滚动无限触发,真是让人头疼。

后来慢慢的debug摸索,发现两个问题:

  • 监听器重复添加
  • 变量作用域

我是写了一个获取评论的函数 get_comments_func() ,然后里面套用了另外一个fetch函数(在外面声明),然后在点击和滚动事件不能把他俩写在 get_comments_func() 函数里,得放在外面调用,但是我发现传值有点问题,最后使用一个全局对象来进行改变值,这样,click和scroll事件都能共享一个值,而不是互相独立的。

函数 get_comments_func()

声明函数 get_comments_func()

每次调用 get_comments_func() 函数时,都会先解绑原来的监听器,然后再请求完成后重新绑定。

函数 scrollRequest()

通过scroll(滚动到顶部)来获取评论

scrollRequest() 函数里,对全局变量进行更改即可(click事件也类似)。

后续...

还更新了邮件系统

这。。。

又简单优化了下

看起来没那么臃肿了

还有一个更优的方案就是单独写一个函数来专门调用数据