Valine icon indicating copy to clipboard operation
Valine copied to clipboard

在存在 Mathjax 页面的评论框中输入文字卡顿

Open inkss opened this issue 4 years ago • 20 comments

  • [x] 受影响的Valine版本、操作系统,以及浏览器信息: v1.4.14 Edge Beta
  • [x] 可复现问题的步骤:在评论框中输入文字卡顿
  • [x] 可复现问题的网页地址: ~~https://inkss.cn/article/other/80b5f235.html~~

  • 错误信息
6[冲突] 'setTimeout' handler 用时 <N> 毫秒
contextmenuhlpr.js:3 [冲突] 'selectionchange' handler took 312ms
[冲突] Forced reflow while executing JavaScript took 312ms
[冲突] Forced reflow while executing JavaScript took 322ms

inkss avatar May 01 '20 04:05 inkss

感觉好像是公式的锅,阻塞的太多东西

inkss avatar May 01 '20 04:05 inkss

页面一直在检测 jQuery,不知道是不是这个问题。。。


            if (window.location.hash)
                var checkExist = setInterval(function() {
                    $(window.location.hash).length && ($("html, body").animate({
                        scrollTop: $(window.location.hash).offset().top - 90
                    }, 1e3),
                    clearInterval(checkExist))
                }, 100)

image

xCss avatar May 01 '20 05:05 xCss

好像不是,我把这串代码注释了,还是那样。而且,这个页面关掉了 mathjax ,就好使了

inkss avatar May 01 '20 05:05 inkss

10s 时间内:

image

inkss avatar May 01 '20 05:05 inkss

Valine 调用MathJax的时候只判断评论区中是否有公式,而不判断文章内容。

按道理讲不会发生这种问题,晚点我测试下

xCss avatar May 01 '20 05:05 xCss

好嘞,目前也就评论区有这个问题,其它的输入框倒是没有

inkss avatar May 01 '20 05:05 inkss

@inkss 我原先还以为是comment_typing效果的锅,后来发现关掉一样卡

Reqwey avatar May 01 '20 10:05 Reqwey

应该是代码逻辑的锅,我修改的版本没有发现此问题。

看代码调用mathjax有延时函数 共有三处调用,可能他们之间冲突了。

~真的会有人在评论里输入公式么~

MHuiG avatar May 01 '20 11:05 MHuiG

应该是代码逻辑的锅,我修改的版本没有发现此问题。

看代码调用mathjax有延时函数 共有三处调用,可能他们之间冲突了。

~真的会有人在评论里输入公式么~

有道理, 希望把评论区的公式渲染删了.

我是OIer, 几乎每一篇文章都有渲染MathJax, 但是从不在评论里面发, 所以这个功能对我来说是个很大的累赘😫

Reqwey avatar May 02 '20 08:05 Reqwey

建议临时提供一个完全关闭MathJax的选项

MHuiG avatar May 02 '20 08:05 MHuiG

如果只慢一点点还可以接受, 但是这实在太卡了, 尤其是敲中文, 而且我的电脑还不大好...

Reqwey avatar May 02 '20 08:05 Reqwey

如果只慢一点点还可以接受, 但是这实在太卡了, 尤其是敲中文, 而且我的电脑还不大好...

临时魔改一下,全给删了 https://github.com/MHuiG/blog-cdn/blob/v1.2.1/js/valine-no-math.js#L2468

突然感觉好多了

CDN:

https://cdn.jsdelivr.net/gh/MHuiG/[email protected]/js/valine-no-math.js

MHuiG avatar May 02 '20 08:05 MHuiG

我选择——关闭公式,哈哈哈哈,反正我也不会写那个语言,也就是测试一下会不会出兼容问题,祖国的大任就交给你们啦 ,手动滑稽加狗头保命

inkss avatar May 02 '20 09:05 inkss

如果只慢一点点还可以接受, 但是这实在太卡了, 尤其是敲中文, 而且我的电脑还不大好...

临时魔改一下,全给删了 https://github.com/MHuiG/blog-cdn/blob/v1.2.1/js/valine-no-math.js#L2468

突然感觉好多了

CDN:

https://cdn.jsdelivr.net/gh/MHuiG/[email protected]/js/valine-no-math.js

用上了, 感谢!!!

Reqwey avatar May 02 '20 09:05 Reqwey

我选择——关闭公式,哈哈哈哈,反正我也不会写那个语言,也就是测试一下会不会出兼容问题,祖国的大任就交给你们啦 ,手动滑稽加狗头保命

期待大佬的Pjax版本~ 0130

MHuiG avatar May 02 '20 10:05 MHuiG

我个人是认为可以使用知乎api,"https://www.zhihu.com/equation?tex="+encodeURIComponent('a+b')

so1ve avatar May 08 '20 00:05 so1ve

我也出现了一样的问题,困惑 😢

ghost avatar May 10 '20 20:05 ghost

不加载Valine评论时的公式的HTML结构: iShot2020-05-1112.57.49.jpg 开启Valine评论时的公式的HTML结构:(Valine设置了 mathJax: falseiShot2020-05-1112.59.08.jpg 由图可见开启了Valine评论之后公式就会无限嵌套。

公式加载部分的代码和NexT主题一模一样,NexT页面的公式也不存在无限嵌套的问题。

xaoxuu avatar May 11 '20 05:05 xaoxuu

@xCss 再次强烈请求彻底关闭评论框的高级渲染功能(识别公式、识别HTML等),不稳定性因素太多,需要贴公式的时候截个图就可以了。

xaoxuu avatar May 11 '20 05:05 xaoxuu

公式渲染直接在服务端渲染完比较好吧, 好像有插件的.

Hime-Hina avatar Jan 17 '21 17:01 Hime-Hina