为什么 mathjax 每次都在同一个访问页面上进行相同的处理?

why does mathjax go throught the same processing on same visited page each time?

我有一个包含 mathml 的页面将由 mathjax 处理。我注意到每次访问该页面(不仅仅是第一次)时,我都会看到相同的处理过程:

  ...waiting for cdf.mathjax.org
  ...processing math... 
  ...typesetting math 5% 10% 20%....

我本以为一旦页面第一次加载,下次访问它时,它会立即出现,因为它现在在浏览器缓存中。但是我想我的理解是错误的。

页面的header为

<!DOCTYPE html> 
<html> 
<head><title>integrals 51 - 100</title> 
<meta charset="UTF-8" /> 
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> 
<link rel="stylesheet" type="text/css" href="report.css" /> 
<script type="text/x-mathjax-config"> MathJax.Hub.Config({ extensions: ["tex2jax.js"], jax: 
["input/TeX", "output/HTML-CSS"], tex2jax: { inlineMath: [ ['$','$'], ["\(","\)"] ], 
displayMath: [ ['$$','$$'], ["\[","\]"] ], processEscapes: true }, 
"HTML-CSS": { availableFonts: ["TeX"] } }); </script> <script type="text/javascript" 
 src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> 
</script><style type="text/css"> .MathJax_MathML {text-indent: 0;} 
</style></head>
<body>

我的问题是:它应该是这样工作的吗?我不会通过按住 SHIFT 键并重新加载页面之类的方式强制重新加载页面。我只是访问该页面,点击浏览器返回键,然后再次单击 link 再次访问该页面。

我在 firefox 34.0.05 和 Chrom 上试过了。我在 windows 7.

好吧,mathjax 格式的方程是由 javascript 生成的。每次重新加载页面时,javascript 都会重新运行。为防止此 javascript 每次都成为 运行,您将需要某种需要在后端使用复杂代码的缓存解决方案。缓存结果存在问题,因为并非所有浏览器都相同,字体大小可能不同,实际 window 大小可能会有所不同。所有这些都会影响生成的方程式的精确细节。

人们一直在研究维基百科上的缓存 mathjax 解决方案,但结果仍然不如即时生成的结果。