3

Disqusコメント コードの説明によると、次のように JavaScript を含める必要があります。

(function () {
  var s = document.createElement('script');
  s.async = true;
  s.type = 'text/javascript';
  s.src = 'http://' + disqus_shortname + '.disqus.com/count.js';
  (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
}());

JavaScript の場所は、サイト固有の短い名前に基づいています。Disqus が JavaScript に 1 つのグローバルな場所 (例: cdn.disqus.com/count.js) を使用するのではなく、そのようにするのはなぜですか。JavaScript が各サイトで同じである場合、アクセスする Disqus 対応ドメインごとに全員に JavaScript を再ダウンロードするよう要求するのはばかげているように思えます。JavaScript が短縮名に基づいて異なる場合、グローバル js がロードされる前に設定される短縮名変数を使用しないのはなぜですか?

Disqus はかなり大規模で洗練された会社なので、これは意識的で意図的な決定であると思います。なぜ彼らはこの道を歩んだのですか?

4

1 に答える 1

8

実際、彼らは CDN を使用して配信していcount.jsます。

<shortname>存在する場合

http://<shortname>.disqus.com/count.jsのようなものにリダイレクトします

http://mediacdn.disqus.com/1334018047/build/system/count.js.

(CDN 上の)トラフィックを削減するためcount.jsに、最大 1 か月までキャッシュできる Expires-Header が提供されます。

しかし、コードを変更したり、一部のサイトをブロックしたり、特別な機能を他のサイトに配信したりする必要があるとしたら、すべてのクライアントが変更を受け取るまでに最大 1 か月かかります。その期間を短縮するために、おそらくこのリダイレクト (最大 10 分間のみキャッシュされる) を使用するため、コード/機能の変更は 10 分以内にすべてのクライアントに到達します。

これにより、柔軟性が大幅に向上し、ユーザーがインクルード コードを変更する必要がなくなります。

于 2012-04-11T00:17:51.250 に答える