kinugasa-link.pl
キヌガサの友達リストを出力する仕組みを CGI から毎アクセスごとに引っ張ってきていたのですがあまりにも index 表示が重くなってしまったので、perl で javascript へ一度変えておいて index からはその javascript を読み込む仕組みへ変えてみました。サクサク表示になったぞ。
kinugasa-link.pl
#!/usr/bin/perl
use strict;
use HTML::Template;
use WebService::Kinugasa;
my $Skey = 'InputYourSKEY';
my $count = 3;
my $html_head = '';
my $html_foot = '';
my $kinugasa = WebService::Kinugasa->new(
skey => $Skey,
num => $count
);
my $links = $kinugasa->link();
my $lists = $links->feeds();
my $output;
for (my $i = 0; $i < $count; ++$i) {
$output->[$i]->{IMAGE} = $lists->[$i]->{mediumimage};
$output->[$i]->{FRIEND_URL} = $lists->[$i]->{url};
$output->[$i]->{HANDLENAME} = $lists->[$i]->{handlename};
$output->[$i]->{COMMENT} = $lists->[$i]->{comment};
}
my $template = HTML::Template->new(filename => 'kinugasa-link.tmpl');
$template->param(KINUGASA_LINK => $output);
$template->param(HTML_HEAD => $html_head);
$template->param(HTML_FOOT => $html_foot);
js_output($template->output());
exit;
sub js_output {
my @lines = split /
/, shift;
for (@lines) {
s/x27/'/g;
print "document.writeln('$_');
";
}
}
kinugasa-link.tmpl
<TMPL_VAR NAME=HTML_HEAD>
<table>
<TMPL_LOOP NAME=KINUGASA_LINK>
<tr>
<td><img alt="<TMPL_VAR NAME=HANDLENAME>"
src="<TMPL_VAR NAME=IMAGE>" border="0" /></td>
<td align="left"><a href="<TMPL_VAR NAME=FRIEND_URL>"
target="_blank"><TMPL_VAR NAME=HANDLENAME></a></td>
</tr>
<tr>
<td colspan="2" align="left"><TMPL_VAR NAME=COMMENT></td>
</tr>
<tr>
<td colspan="2"><hr color="#003060" width="80%"></td>
</tr>
</TMPL_LOOP>
</table>
<TMPL_VAR NAME=HTML_FOOT>
あとは cron で kinugasa-link.pl を実行して kinugasa-link.js を定期的に吐き出すように。このあたりの方法は Blog Hacks に記載されてますのでそちらも一緒に参照をどうぞ。
トラックバック(0)
このブログ記事を参照しているブログ一覧: kinugasa-link.pl
このブログ記事に対するトラックバックURL: http://hatotech.org/mt-admin/mt-tb.cgi/336

コメントする