JS 啊,JS

李鹏坤 / 2020-04-21


关于评论和黑夜白天模式切换的 JS ,我修改了好多次。

但是一直都会在修改几天后,自己再使用时发现可以优化的地方。就在昨天晚上,我发现了一个问题——评论模式切换的提示无法显示了。

由于评论是异步 JS 加载的,而且 iframe 跨域,所以在评论加载完毕后,切换页面的阅读模式后,在评论区上方有个“切换评论阅读模式”的提示。

经过调试,我没有发现 mode.js 中有任何错误。

我然后认为是加载顺序的问题,这个跟是否 async 没有关系。 我打印了 insertBefore 后的元素,发现 DOM 操作是执行了的,可是其并没有反应到页面上!

为什么?

思前想后,我认为是我代码写得不规范。

首先,我在那一大段正则后加上了 ; ,然后把获取的 DOM 元素变量,都放到离 DOM 操作最接近的地方,以免该变量被修改,或过早获取。 最后,我把 constlet 都改为了 var

结果这个问题解决了。 代码履历


这个事情引起了我的反思。

做前端开发快一年了,一直都在 Angular 和 Vue 的温室下。写的是 typeScript ,浏览器最后执行的代码是 webpack 编译后的 JS , 生命周期,处理顺序都被安排得明明白白的,基本上不需要思考。

路还很长。