0

今、私のchannel.htmlファイルは次のようになります。

<?php
require_once __DIR__ . '/ay/includes/config.inc.php';

session_set_cookie_params(7200, '/' . AY_PROJECT_ID . '/', 'dev.anuary.com', FALSE, FALSE);

session_start();

$cache_expire   = 60*60*24*365;
header("Pragma: public");
header("Cache-Control: max-age=" . $cache_expire);
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $cache_expire) . ' GMT');
?>
<script src="//connect.facebook.net/<?=$_SESSION['ay']['fb']['user']['locale']?>/all.js"></script>

私はそれを単純な HTML ファイル サービングに減らしたいと思います:

<script src="//connect.facebook.net/en_US/all.js"></script>

現在、オリジナルall.jsは以下を使用して含まれています。

(function(d){
    var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
    js = d.createElement('script'); js.id = id; js.async = true;
    js.src = 'https://connect.facebook.net/' + ay.locale + '/all.js';

    d.getElementsByTagName('head')[0].appendChild(js);
}(document));

ay.locale署名されたリクエストに基づいて変化する変数です。違いはありますか?

4

1 に答える 1

1

JS SDK が Facebook によってホストされているバージョンである限り、JS SDK をハードコードしても「安全」である必要があります。異なるロケールが同期していない可能性は低く、異なるファイル間の唯一の違いは、ユーザーに表示される文字列です。

ただし、 1 つのロケールをハードコーディングするのではなく、同じ URL を使用することを強くお勧めします。これは、2 つの異なる URL を使用すると、ブラウザが SDK を 2 回ダウンロードしなければならない場合があるためです。ライブラリは大きいため、重大な UX の問題を引き起こす可能性があります。

もちろん、ユーザーが en_US SDK と自分のロケールのバージョンを使用する他の Web サイトを定期的に閲覧している場合、これが発生する可能性は低くなります。ファイルがキャッシュされている場合、これは問題になりません。

于 2012-04-19T18:06:07.420 に答える