Как заставить веб-страницу ждать отображения математики, прежде чем она будет отображаться с использованием mathjax? - PullRequest
0 голосов
/ 12 сентября 2018

Если на веб-странице много математики, перед загрузкой страницы вступают в действие 2 фазы.

Браузер, который знает mathml, или если браузер не знает mathml, он, похоже, использует режим «предварительного просмотра HTML» для первоначального отображения страницы, пока mathjax не завершит ее обработку.

Это будет длиться 1 секунду или 10 секунд или более, в зависимости от размера страницы и количества математических операций на ней.

Итак, что происходит так: при начальной загрузке страницы она будет отображаться по-другому.

Затем, через несколько секунд, страница внезапно обновляется, и снова отображается математика, теперь немного другая, поскольку mathjax завершил ее обработку.

Это может раздражать, потому что если прокрутить страницу вниз на этом начальном этапе, страница внезапно обновится и перезагрузится сверху, а другой потеряет то место, где они были на странице в то время.

Вопрос: есть ли способ отключить это, чтобы страница открывалась только после того, как mathjax завершил ее полную обработку, чтобы предотвратить это двойное обновление / перезагрузку поведения страницы?

Чтобы показать, что я имею в виду, вот одна веб-страница с некоторой математикой. После открытия страницы это может занять 2-5 секунд, а затем она обновится еще раз.

Я использую эту конфигурацию

<!DOCTYPE html> 
<html> 
<head> 
<title></title> 
<meta  charset="utf-8" /> 
<meta name="viewport" content="width=device-width,initial-scale=1" /> 
<link rel="stylesheet" type="text/css" href="foo.css" /> 
<meta name="src" content="foo.tex" /> 
 <script type="text/x-mathjax-config"> MathJax.Hub.Config({ TeX: 
{ extensions: ["color.js","AMSmath.js"], 
 equationNumbers: { autoNumber: "AMS" } }, 
 extensions: ["tex2jax.js"], 
  tex2jax: {  inlineMath: [ ["\\\(","\\\)"] ], 
  displayMath: [ ['$$','$$'], ["\\[","\\]"] ], 
  processEscapes: true, 
  processEnvironments: true } }); 
</script> 

     <script type="text/javascript" 
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
    </script>  

<script type="text/x-mathjax-config"> 
MathJax.Hub.Config({ TeX: 
 { MAXBUFFER: 40*1024, Macros : 
   { relax: "", setlength: ["{}", 2], allowbreak: "{}" }}, 
   });

....

...