0

チャンネル ファイルを追加すると、特定のブラウザーでのクロスドメイン通信の問題に対処することで、Facebook JS SDK のパフォーマンスが大幅に向上します

channel.html ファイルの内容は、次の 1 行だけにする必要があります。

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

チャネル ファイルは、できるだけ長くキャッシュされるように設定する必要があります。

PHP の場合:-

<?php
 $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/en_US/all.js"></script>

Perlで同様のファイルを作成するには?

4

1 に答える 1

0

まず、channel.htmlファイルをcgi-scriptとして設定します(サーバーがApacheで実行されていると仮定します)。構成ファイルを編集して、次のようなものを追加する必要があります。

<Files "channel.html">
AddHandler cgi-script .html
Options ExecCGI
</Files>

次に、このファイルをPerlで書き直します。

#!usr/bin/perl

binmode STDOUT;
my $cache_expire = 60*60*24*365;
print "Pragma: public\n";
print "Cache-Control: max-age=",$cache_expire,"\n";
print 'Expires: ', Mailtime(time+$cache_expire),"\n";
print 'Content-Type: text/html; charset=utf-8'."\n\n";
print '<script src="//connect.facebook.net/en_US/all.js"></script>';

sub Mailtime { 
my @months = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec); 
my @wdays = qw(Sun Mon Tue Wed Thu Fri Sat); 
my ($sec,$min,$hour,$mday,$mon,$year,$wday) = gmtime($_[0]); 
return sprintf("%s, %02d %s %d %02d:%02d:%02d GMT", $wdays[$wday], $mday, $months[$mon], $year+1900, $hour, $min, $sec); 
}
于 2012-10-27T07:14:39.177 に答える