JS 啊,JS
李鹏坤 / 2020-04-21
关于评论和黑夜白天模式切换的 JS ,我修改了好多次。
但是一直都会在修改几天后,自己再使用时发现可以优化的地方。就在昨天晚上,我发现了一个问题——评论模式切换的提示无法显示了。
由于评论是异步 JS 加载的,而且 iframe 跨域,所以在评论加载完毕后,切换页面的阅读模式后,在评论区上方有个“切换评论阅读模式”的提示。
经过调试,我没有发现 mode.js 中有任何错误。
我然后认为是加载顺序的问题,这个跟是否 async
没有关系。
我打印了 insertBefore
后的元素,发现 DOM 操作是执行了的,可是其并没有反应到页面上!
为什么?
思前想后,我认为是我代码写得不规范。
首先,我在那一大段正则后加上了 ;
,然后把获取的 DOM
元素变量,都放到离 DOM
操作最接近的地方,以免该变量被修改,或过早获取。
最后,我把 const
和 let
都改为了 var
。
结果这个问题解决了。 代码履历
这个事情引起了我的反思。
做前端开发快一年了,一直都在 Angular 和 Vue 的温室下。写的是 typeScript ,浏览器最后执行的代码是 webpack 编译后的 JS , 生命周期,处理顺序都被安排得明明白白的,基本上不需要思考。
路还很长。