马黑黑 发表于 2025-4-22 20:00

hblog开发手记之三:文章评论模块的Bug

<div class="artbox">

<p>第一稿正常工作,后面要在文章阅读页面剥离非登录与登录状态,需要重写部分代码,过程中某个环节草率了,封装JS函数的机制里,一个乃至两个参数的传递不正常,导致后端程序找不到库资源、拿不到正确的数据索引。</p>
<p>剥离登录与非登录状态必须得有。实现剥离功能通过PHP做判断,以博主登录状态决定在阅读页面中提供哪些JS函数。修改时使用 NOWDOC 将第一稿的回复评论函数简单包装一下,类似下面的代码:</p>
<div id="hEdiv1"><pre id="hEpre1">
echo &lt;&lt;&lt;'EOF'
// 回复留言函数
const replyComment = () =&gt; {
        //... 这里收集数据、提交、等待后端处理结果
}
EOF;
</pre></div>
<p>JS函数 replyComment() 要向后端发起请求,需要传递的参数主要有文章索引、评论索引、回复评论内容,姑且分别记作 art_idx、cmm_idx 和 rely_content,reply_content 没问题,主要是前两个索引参数,第一稿的代码是这样拿到的:</p>
<div id="hEdiv2"><pre id="hEpre2">
//JS代码中插入PHP代码
art_idx = &lt;?php echo $art_idx; ?&gt;
cmm_idx = &lt;?php echo $cmm_idx; ?&gt;
</pre></div>
<p>因为PHP有这些变量,JS函数又是独立的,所以上面的代码完全没有任何问题。而用 NOWDOC 封装JS函数代码后,上面的两行语句就不能正常工作了,所以传递给后端程序的数据不完整。</p>
<p>修改方法:在 &lt;&lt;&lt;'EOF' 之前插入JS变量:</p>
<div id="hEdiv3"><pre id="hEpre3">
echo "const art_idx = '" . $art_idx . "';";
echo "const cmm_idx = '" . $cmm_idx . "';";
echo &lt;&lt;&lt;'EOF'
// 回复留言函数
const replyComment = () =&gt; {
        //... 这里收集数据、提交、等待后端处理结果
        //... 提交文章索引、评论索引参数直接就是JS变量 art_idx 和 cmm_idx
}
EOF;
</pre></div>
<p>大概就是这样,目前问题已得到处理。</p>

</div>

<script type="module">
import hlight from 'https://638183.freep.cn/638183/web/helight/helight1.js';
hlight.hl(hEdiv1, hEpre1);
hlight.hl(hEdiv2, hEpre2);
hlight.hl(hEdiv3, hEpre3);
</script>

<style>
.artbox > p { margin: 10px 0; font-size: 18px; ?
</style>

樵歌 发表于 2025-4-22 20:26

{:4_190:}

红影 发表于 2025-4-22 21:00

是因为这些变量能直接用,而使用 NOWDOC 封装JS函数代码后,不能直接用的缘故吧。
看黑黑说一直找到最后才找到问题所在,真不容易呢{:4_187:}

马黑黑 发表于 2025-4-22 21:22

红影 发表于 2025-4-22 21:00
是因为这些变量能直接用,而使用 NOWDOC 封装JS函数代码后,不能直接用的缘故吧。
看黑黑说一直找到最后才 ...

直接用不了,因为一切依靠PHP控制,是PHP生成的这些函数

马黑黑 发表于 2025-4-22 21:23

樵歌 发表于 2025-4-22 20:26


谢茶

花飞飞 发表于 2025-4-22 22:06

实用主义者说,现在全部都好了。。
评论正常,博主回复正常,不再 占上一条。。完美{:4_173:}

花飞飞 发表于 2025-4-22 22:07

至于怎么做到的,感觉有点烧脑。。回头找空系统细看。。

红影 发表于 2025-4-22 22:11

马黑黑 发表于 2025-4-22 21:22
直接用不了,因为一切依靠PHP控制,是PHP生成的这些函数

嗯嗯,知道了。学习{:4_187:}

马黑黑 发表于 2025-4-22 23:00

红影 发表于 2025-4-22 22:11
嗯嗯,知道了。学习

一切都有上下文,什么样的环境怎么做,都有一定规则

马黑黑 发表于 2025-4-22 23:05

花飞飞 发表于 2025-4-22 22:06
实用主义者说,现在全部都好了。。
评论正常,博主回复正常,不再 占上一条。。完美

原先出错的数据,需要手动处理一下:一个评论信息占一行,这个容易看出来的,看头像,自动折行的多喵一眼。库数据最后一行是空行,其他地方的不得有空行。

红影 发表于 2025-4-23 22:36

马黑黑 发表于 2025-4-22 23:00
一切都有上下文,什么样的环境怎么做,都有一定规则

这和现实里做事也是一样的,不是按部就班地来,就经常容易出问题。

马黑黑 发表于 2025-4-24 19:05

红影 发表于 2025-4-23 22:36
这和现实里做事也是一样的,不是按部就班地来,就经常容易出问题。

入乡随俗

红影 发表于 2025-4-24 23:33

马黑黑 发表于 2025-4-24 19:05
入乡随俗

嗯嗯,这是必须的。

马黑黑 发表于 2025-4-25 20:15

红影 发表于 2025-4-24 23:33
嗯嗯,这是必须的。

同意盖章

红影 发表于 2025-4-25 21:39

马黑黑 发表于 2025-4-25 20:15
同意盖章

这样的章子很有含金量{:4_173:}

马黑黑 发表于 2025-4-26 08:38

红影 发表于 2025-4-25 21:39
这样的章子很有含金量

对,可以只拿利息就能做到财务自由

红影 发表于 2025-4-26 14:07

马黑黑 发表于 2025-4-26 08:38
对,可以只拿利息就能做到财务自由

含金量这么高啊,真是好东西{:4_173:}

马黑黑 发表于 2025-4-26 23:21

红影 发表于 2025-4-26 14:07
含金量这么高啊,真是好东西

;那是绝对的

红影 发表于 2025-4-26 23:40

马黑黑 发表于 2025-4-26 23:21
;那是绝对的

可惜拿了高含金量的东西,还没财富自由啊{:4_173:}

马黑黑 发表于 2025-4-27 12:08

红影 发表于 2025-4-26 23:40
可惜拿了高含金量的东西,还没财富自由啊

财富不自由没关系,财务自由就好
页: [1] 2
查看完整版本: hblog开发手记之三:文章评论模块的Bug