2012-04-19 12 views
0

次のように今私のchannel.htmlファイルが見えます:channel.htmlロケールは最初に含まれたall.jsと一致する必要がありますか?

<?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は、署名付きリクエストに基づいて変更される変数です。何か違いはありますか?

答えて

1

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

ただし、1つのロケールをハードコードする代わりに同じURLを使用することを強くおすすめします。この理由は、2つの異なるURLを使用すると、ブラウザがSDKを2回ダウンロードする必要があるためです。ライブラリが大きいので、UXの重大な問題を引き起こす可能性があります。

もちろん、en_US SDKを使用している他のWebサイトと、自分のロケールで使用しているバージョンを定期的に参照すると、このようなことは起こりにくいです。ファイルがキャッシュされている場合、これは問題にはなりません。

+0

あなたのアカウントにも[this](http://stackoverflow.com/users/666583/andrewf)もありますか?もしそうなら、あなたの現在のアカウントにマージされますか? –

関連する問題