慢/无响应/卡住的typekit脚本

时间:2012-05-29 10:23:47

标签: javascript font-face typekit

我已经在我的网站上安装了typekit,通常在开头标签之后的两行js但是它在字体中加载速度非常慢/没有响应,这是通过刷新页面完全补救的,之后是typekit字体加载完美而且非常快。但是从用户的角度来看,他们永远不会知道这样做,所以他们将被提供默认字体。

在元标记之前以及在jquery,jquery-ui和其他脚本中加载之前,我将typekit js作为开头标记下的第一件事。

有没有其他人遇到麻烦?

1 个答案:

答案 0 :(得分:1)

似乎对我有用的是以异步模式加载脚本 - 正如在typekit博客上指定的那样,我已经将它复制到了下面

标准异步模式

这第一种模式是最基本的。它基于由Steve Souders等网络性能专家撰写的模式,并用于其他JavaScript嵌入代码,如Google Analytics。

<script type="text/javascript">
  TypekitConfig = {
    kitId: 'abc1def'
  };
  (function() {
    var tk = document.createElement('script');
    tk.src = '//use.typekit.com/' + TypekitConfig.kitId + '.js';
    tk.type = 'text/javascript';
    tk.async = 'true';
    tk.onload = tk.onreadystatechange = function() {
      var rs = this.readyState;
      if (rs && rs != 'complete' && rs != 'loaded') return;
      try { Typekit.load(TypekitConfig); } catch (e) {}
    };
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(tk, s);
  })();
</script>

此模式使用单个内联标记动态地向页面添加新的脚本元素,该页面加载工具包而不阻止进一步呈现。附加一个事件侦听器,在脚本加载完成后调用Typekit.load()。 如何使用它:

将此代码段放在顶部,以便尽快开始下载。 编辑突出显示的TypekitConfig对象,并将默认值替换为您自己的Kit ID。 您可以将JavaScript字体事件回调添加到TypekitConfig对象。

优点:

异步加载套件(在加载时不会阻止进一步的页面渲染)。

缺点:

向html页面添加的字节数多于标准的Typekit嵌入代码。 在所有无法使用字体事件控制或隐藏的浏览器中导致初始FOUT。