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

时间:2015-01-05 08:08:39

标签: mathjax

我有一个mathh页面,由mathjax处理。我注意到每次访问页面时(不仅仅是第一次)我看到相同的处理:

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

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

页面标题为

<!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键和重新加载页面来重新加载。我只需访问该页面,点击浏览器返回键,然后再次点击该链接再次访问该页面。

我在firefox 34.0.05和Chrom上试过这个。我在Windows 7上。

1 个答案:

答案 0 :(得分:2)

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

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