让 instantclick 兼容 MathJax、百度统计等

作者: , 共 1017 字

由于 instantclick 不会重新运行位于 head 部分的 JavaScript 代码,而很多工具性软件,比如 MathJax、百度统计、Google Analytics、Google Code Prettify 等软件都是直接将 JS 文件插入到 head 区域。这导致这些工具在 instantclick 点击后失效,需要重新配置。

配置并不复杂,这些工具本身的代码不用做任何修改。但在InstantClick.init();之前添加以下代码:

<script data-no-instant>
InstantClick.on('change', function(isInitialLoad) {
  if (isInitialLoad === false) {
    if (typeof MathJax !== 'undefined') // support MathJax
      MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
    if (typeof prettyPrint !== 'undefined') // support google code prettify
      prettyPrint();
    if (typeof _hmt !== 'undefined')  // support 百度统计
      _hmt.push(['_trackPageview', location.pathname + location.search]);
    if (typeof ga !== 'undefined')  // support google analytics
        ga('send', 'pageview', location.pathname + location.search);
  }
});
InstantClick.init();
</script>

它的含义是每次页面重载时,通过直接的函数调用来实现 MathJax、百度统计、Google Code Prettify、Google Analytics 的重新运行。

Q. E. D.

类似文章:
IT » LaTeX, MathJax, 数学公式
如果让我投票最优秀的开源项目,我会投给MathJax。MathJax 是一个 JavaScript 引擎,用来显示网络上的数学公式。阅微堂上所有数学公式都用 LaTex 写出,通过 MathJax 来显示。
IT » MathJax, latex, wordpress
此插件已经不再维护,但理论上可继续使用。
前面文章已提到,阅微堂搬迁到了阿里云。受预算的限制,服务器只有单核的 CPU ,内存只有 1G ,同时又安装的是 windows 系统,导致服务器性能极低下。网络带宽也只有 1M (即最大理论下载速度只有 128k/s ),访问速度受到极大的影响。不得已,采取若干中方法降低服务器性能和带宽压力,提升页面访问和显示速度。
上一篇如何计算收益率中有一个例子,基金经理的表现挺好,但最后投资人的实际表现却相对较差。这意味着一项投资的最终表现依赖于多个影响因素,而绩效分解便是如何定量的将实际表现分解到这各个影响因素上去。
投资 » 低风险投资
我是最早从《低风险投资之路》中听到「低风险投资」这个词。这本书的作者从 2005 年开始,将所有家庭资金投入到股票市场,采用低风险投资的方式,至今总收益率已超过 10 倍。