Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Markdown MathJax-优化多字体的性能_Markdown_Mathjax_Wmd_Wmd Editor_Pagedown - Fatal编程技术网

Markdown MathJax-优化多字体的性能

Markdown MathJax-优化多字体的性能,markdown,mathjax,wmd,wmd-editor,pagedown,Markdown,Mathjax,Wmd,Wmd Editor,Pagedown,我试图通过仅在修改的段落中转换Markdown/Tex来实现中的部分渲染。 因此,基本上,我有一个#preview元素,它包含多个.preview>部分元素,这些元素本身包含转换后的HTML段落。当我更新一个或多个.preview\u节元素时,我希望MathJax只处理这些元素 我尝试了不同的方法: 将修改的.preview\u节元素列表作为typset参数传递。就性能而言,这是最糟糕的解决方案。当传递多个元素时,渲染时间几乎乘以元素数 将#preview元素作为排版参数传递。此解决方案的问题

我试图通过仅在修改的段落中转换Markdown/Tex来实现中的部分渲染。 因此,基本上,我有一个
#preview
元素,它包含多个
.preview>部分
元素,这些元素本身包含转换后的HTML段落。当我更新一个或多个
.preview\u节
元素时,我希望MathJax只处理这些元素

我尝试了不同的方法:

  • 将修改的
    .preview\u节
    元素列表作为typset参数传递。就性能而言,这是最糟糕的解决方案。当传递多个元素时,渲染时间几乎乘以元素数
  • #preview
    元素作为排版参数传递。此解决方案的问题是MathJax再次渲染已渲染的
    脚本[type=“math/tex;mode=display”]
    。我试图设置tex2jax
    ignoreClass:“tex2jax\u ignore”
    配置,并将
    .tex2jax\u ignore
    添加到未修改的
    .preview\u部分
    元素和已渲染的
    脚本
    元素中,但没有效果,因为它没有经过tex2jax预处理器处理(我想)
  • #preview
    元素作为排版参数传递,但在从预览中删除所有
    脚本[type=“math/tex;mode=display”]
    之后。这是最有效的,但我真的不想从预览中删除这些脚本

有没有办法告诉MathJax不要处理那些
script
元素?或者在我投入到源代码之前的任何想法。。。谢谢。

好的,我刚发现我的问题。MathJax在DOM中的每个
script[type=“math/tex”]
元素中存储一个JavaScript对象。此对象实际存储在
元素.MathJax
中,包含:

checked: 1
elementJax: Object
preview: span.MathJax_Preview
startNumber: 0
state: 2

其中,
state
是预览的状态(2表示已处理)。因此,如果已经呈现预览,则该字体不会再次呈现预览,除非您在DOM中重写脚本标记(这就是我正在做的),在这种情况下,您将丢失MathJax对象和预览的状态。这就是为什么MathJax一直在重新呈现我所有的脚本。

好的,我刚刚发现了我的问题。MathJax在DOM中的每个
script[type=“math/tex”]
元素中存储一个JavaScript对象。此对象实际存储在
元素.MathJax
中,包含:

checked: 1
elementJax: Object
preview: span.MathJax_Preview
startNumber: 0
state: 2

其中,
state
是预览的状态(2表示已处理)。因此,如果已经呈现预览,则该字体不会再次呈现预览,除非您在DOM中重写脚本标记(这就是我正在做的),在这种情况下,您将丢失MathJax对象和预览的状态。这就是为什么MathJax一直在重新渲染我的所有脚本。

我也有同样的问题。我只能为mathjax使用一些外部javascript文件,而且很难调整预览。我使用的是chatjax代码。这是我的JSFIDLE:您知道是否可以使用chatjax以便预览效果良好吗?您可以调用
MathJax.Hub.Queue([“Typeset”,MathJax.Hub,element])对于每个需要更新的元素…?这是第一种方法,但速度非常慢。我有完全相同的问题。我只能为mathjax使用一些外部javascript文件,而且很难调整预览。我使用的是chatjax代码。这是我的JSFIDLE:您知道是否可以使用chatjax以便预览效果良好吗?您可以调用
MathJax.Hub.Queue([“Typeset”,MathJax.Hub,element])对于每个需要更新的元素…?这是第一种方法,但速度非常慢。