<script type=text/javascript>
<!--
function Team(name,members){
this.name = name;
this.members = members;
}
Team.prototype.add = function(members){
this.members += members;
};
function TeamAAA (name,members) {
this.name = name;
this.members = members;
}
TeamAAA.prototype = new Team();
TeamAAA.prototype.leave = function(members){
this.members -= members;
};
baseball = new TeamAAA("2軍",11);
baseball.leave(3);
document.write("Team name:"+ baseball.name + ", members:"+baseball.members);
//-->
</script>
JavaScript継承パターンまとめ
Sunday, April 22, 2007
Javascript クラス コンストラクトの例
<script type=text/javascript>
<!--
function Team(name,members){
this.name = name;
this.members = members;
}
Team.prototype.add = function(members){
this.members += members;
};
football = new Team("Japan",11);
football.add(3);
document.write("Team name:"+ football.name + ", members:"+football.members);
//-->
</script>
<!--
function Team(name,members){
this.name = name;
this.members = members;
}
Team.prototype.add = function(members){
this.members += members;
};
football = new Team("Japan",11);
football.add(3);
document.write("Team name:"+ football.name + ", members:"+football.members);
//-->
</script>
Friday, April 20, 2007
Javascript 多次元配列のソートの例
<script type=text/javascript>
<!--
function sort1(a,b){ return a[1] - b[1] }
function sort2(a,b){ return a[2] - b[2] }
xx = new Array(3, 7, 8, 1);
xx.sort();
document.write(xx);
document.write("<br>");
var persons =
[
[ 'Tanaka' , '32' ,'Japan'] ,
[ 'John' , '38' ,'UK'] ,
[ 'Ken' , '26' ,'France'] ,
[ 'John' , '49' ,'India'] ,
]
persons.sort();
for (var i = 0; i < persons.length; i ++) {
document.write(persons[i] + "<br>");
}
document.write("<br>");
persons.sort(sort1)
for (var i = 0; i < persons.length; i ++) {
document.write(persons[i] + "<br>");
}
document.write("<br>");
persons.sort(sort2)
for (var i = 0; i < persons.length; i ++) {
document.write(persons[i] + "<br>");
}
//-->
</script>
意外と遅いらしい。
<!--
function sort1(a,b){ return a[1] - b[1] }
function sort2(a,b){ return a[2] - b[2] }
xx = new Array(3, 7, 8, 1);
xx.sort();
document.write(xx);
document.write("<br>");
var persons =
[
[ 'Tanaka' , '32' ,'Japan'] ,
[ 'John' , '38' ,'UK'] ,
[ 'Ken' , '26' ,'France'] ,
[ 'John' , '49' ,'India'] ,
]
persons.sort();
for (var i = 0; i < persons.length; i ++) {
document.write(persons[i] + "<br>");
}
document.write("<br>");
persons.sort(sort1)
for (var i = 0; i < persons.length; i ++) {
document.write(persons[i] + "<br>");
}
document.write("<br>");
persons.sort(sort2)
for (var i = 0; i < persons.length; i ++) {
document.write(persons[i] + "<br>");
}
//-->
</script>
意外と遅いらしい。
Thursday, April 19, 2007
Date Javascript
var date = new Date ();
date.setTime(1);
mdate = date.getFullYear() +"/" + (date.getMonth()+1) + "/" + date.getDate();
alert(mdate );
date.getDay // 0から始まる曜日を返す。0は日曜日、6が土曜日
date.setTime(1);
mdate = date.getFullYear() +"/" + (date.getMonth()+1) + "/" + date.getDate();
alert(mdate );
date.getDay // 0から始まる曜日を返す。0は日曜日、6が土曜日
Wednesday, April 18, 2007
無名配列 Anonymous Arrayの例 Javascript
var persons = [
{ Name: "田中", Age: 20 },
{ Name: "山田", Age: 18 },
{ Name: "青木", Age: 15 }
];
for (var i = 0; i < persons.length; i ++) {
alert(persons[i].Name + ":" +persons[i].Age);
}
{ Name: "田中", Age: 20 },
{ Name: "山田", Age: 18 },
{ Name: "青木", Age: 15 }
];
for (var i = 0; i < persons.length; i ++) {
alert(persons[i].Name + ":" +persons[i].Age);
}
連想配列のサンプル JavaScript
連想配列のサンプル
person1 = new Array();
person1["Name"] = "Mike";
document.write(person1["Name"] );
person1 = new Array();
person1["Name"] = "Mike";
document.write(person1["Name"] );
Thursday, April 12, 2007
Wednesday, April 11, 2007
Tuesday, April 10, 2007
Exporter
package Constant;
use strict;
BEGIN{
use Exporter;
use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
@ISA = qw(Exporter);
@EXPORT = qw(
HOGE
HOGE2
);
%EXPORT_TAGS = ();
@EXPORT_OK = ();
}
use constant HOGE => 'hoge';
use constant HOGE2 => 2;
1
~
-----
#!/usr/local/bin/perl
use Constant;
print HOGE2;
use strict;
BEGIN{
use Exporter;
use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
@ISA = qw(Exporter);
@EXPORT = qw(
HOGE
HOGE2
);
%EXPORT_TAGS = ();
@EXPORT_OK = ();
}
use constant HOGE => 'hoge';
use constant HOGE2 => 2;
1
~
-----
#!/usr/local/bin/perl
use Constant;
print HOGE2;
ENDサブルーチン Perl
exitやdieで終了したあとで呼ばれる。
ただし「exec」、「kill -9」または異常終了などがあると呼ばれない。
複数ある場合は文の最後から呼ばれる。
exit;
END{
print "end1\n";
}
END{
print "end2\n";
}
END{
print "end3\n";
}
----- 結果 ----
end3
end2
end1
となる
ただし「exec」、「kill -9」または異常終了などがあると呼ばれない。
複数ある場合は文の最後から呼ばれる。
exit;
END{
print "end1\n";
}
END{
print "end2\n";
}
END{
print "end3\n";
}
----- 結果 ----
end3
end2
end1
となる
日付関係
use POSIX 'strftime';
print strftime ("%Y/%m/%d %H:%M:%S", localtime);
参考URL
http://blog.livedoor.jp/dankogai/archives/50180654.html
http://www2u.biglobe.ne.jp/~MAS/perl/waza/strftime.html
print strftime ("%Y/%m/%d %H:%M:%S", localtime);
参考URL
http://blog.livedoor.jp/dankogai/archives/50180654.html
http://www2u.biglobe.ne.jp/~MAS/perl/waza/strftime.html
Friday, April 06, 2007
ダウンロードコンテンツの著作権関連のサンプル
Content-Type: application/vnd.oma.dd+xml
Content-length: 50
image/jpg
http://myserver/dl.cgi?img=picture.jpg
1234
著作権関連のOMAのサンプル
Content-length: 50
著作権関連のOMAのサンプル
ファイルサイズを求める -s
perlでのサンプル
my $body;
open(MP3, $file) || die("can't open \n $!");
read(MP3, $body, -s $file);
close(MP3);
print $body;
my $body;
open(MP3, $file) || die("can't open \n $!");
read(MP3, $body, -s $file);
close(MP3);
print $body;
正規表現の例 perl
my $n = 5;
unless ($n =~ /^[1-5]$/) {
print "n is not from one to five";
}else{
print "n is between one and five";
}
unless ($n =~ /^[1-5]$/) {
print "n is not from one to five";
}else{
print "n is between one and five";
}
Yahoo!ケイタイの動画、転送不可のHTTPヘッダのサンプル
Yahoo!ケイタイの動画、転送不可のHTTPヘッダのサンプル
Content-type: video/3gpp\nContent-length: 100\nx-jphone-copyright: no-store\n\n
サイズ Content-lengthは
-s で求めたりする。
http://developers.softbankmobile.co.jp/dp/tool_dl/web/tech.php
を参照。
Content-type: video/3gpp\nContent-length: 100\nx-jphone-copyright: no-store\n\n
サイズ Content-lengthは
-s で求めたりする。
http://developers.softbankmobile.co.jp/dp/tool_dl/web/tech.php
を参照。
Thursday, April 05, 2007
Perl テストプランツールのサンプル
テストプランツールのサンプル
#!/usr/local/bin/perl -w
use strict;
use Data::Dumper;
use Test::More qw(no_plan);
use lib './lib';
BEGIN {
use_ok('Original::Person');# パールモジュール
};
my $p = Original::Person->new('Tom');
is ($p->tel,'0123-123-1234', 'tel number');
is ($p->age,'24', 'age');
#!/usr/local/bin/perl -w
use strict;
use Data::Dumper;
use Test::More qw(no_plan);
use lib './lib';
BEGIN {
use_ok('Original::Person');# パールモジュール
};
my $p = Original::Person->new('Tom');
is ($p->tel,'0123-123-1234', 'tel number');
is ($p->age,'24', 'age');
prototype.js を使ったチャットシステムの習作
ログファイルのロックやサイズ制限などは入れていないです。
単純にprototype.js の練習用です。
<html>
<head>
<script type="text/javascript" src="./js/prototype-1.5.0.js"></script>
<script type="text/javascript">
//<![CDATA[
function updateResult(req){
$("status").innerHTML = req.responseText ;
}
function update() {
var url = './read.pl';
var params = '';
var ajax = new Ajax.Request(url, { method: 'post',
parameters: params,
onComplete: updateResult
});
}
function execute() {
var url = './write.pl';
var params = Form.serialize($('form1'));
var ajax = new Ajax.Request(url, { method: 'post',
parameters: params
});
}
function adListener() {
periodicalExecuter = new PeriodicalExecuter(update, 1);
}
//]]>
</script>
</head>
<body onload="adListener()">
<form id="form1" onSubmit="execute()">
message <input type="text" name="message" id="d_message" value=""><br>
<input type="submit" value="entry">
</form>
<hr>
<span id="status"></span>
</body>
</html>
-----write.pl
#!/usr/bin/perl -w
# モジュール読み込み
use strict;
use CGI;
print 'Content-Type: text/html', "\n\n";
#オブジェクト作成
my $q = CGI->new;
my $message = $q->param('message');
if ($message){
# ファイルロック処理は入れていない
open(OUTFILE, ">> /tmp/mes.txt");
print OUTFILE $message."\n";
close OUTFILE;
print $message;
}
----read.pl----
#!/usr/bin/perl -w
# モジュール読み込み
use strict;
print 'Content-Type: text/html', "\n\n";
my $file = '/tmp/mes.txt';
if ( -e $file) {
open( READ, $file );
my @lines = <READ>;
close( READ );
my $num = @lines;
my @lists = @lines[$num-5 .. $num-1];# 最後からデータを取得
foreach (@lists) {
print $_,"<br>";
}
}
単純にprototype.js の練習用です。
<html>
<head>
<script type="text/javascript" src="./js/prototype-1.5.0.js"></script>
<script type="text/javascript">
//<![CDATA[
function updateResult(req){
$("status").innerHTML = req.responseText ;
}
function update() {
var url = './read.pl';
var params = '';
var ajax = new Ajax.Request(url, { method: 'post',
parameters: params,
onComplete: updateResult
});
}
function execute() {
var url = './write.pl';
var params = Form.serialize($('form1'));
var ajax = new Ajax.Request(url, { method: 'post',
parameters: params
});
}
function adListener() {
periodicalExecuter = new PeriodicalExecuter(update, 1);
}
//]]>
</script>
</head>
<body onload="adListener()">
<form id="form1" onSubmit="execute()">
message <input type="text" name="message" id="d_message" value=""><br>
<input type="submit" value="entry">
</form>
<hr>
<span id="status"></span>
</body>
</html>
-----write.pl
#!/usr/bin/perl -w
# モジュール読み込み
use strict;
use CGI;
print 'Content-Type: text/html', "\n\n";
#オブジェクト作成
my $q = CGI->new;
my $message = $q->param('message');
if ($message){
# ファイルロック処理は入れていない
open(OUTFILE, ">> /tmp/mes.txt");
print OUTFILE $message."\n";
close OUTFILE;
print $message;
}
----read.pl----
#!/usr/bin/perl -w
# モジュール読み込み
use strict;
print 'Content-Type: text/html', "\n\n";
my $file = '/tmp/mes.txt';
if ( -e $file) {
open( READ, $file );
my @lines = <READ>;
close( READ );
my $num = @lines;
my @lists = @lines[$num-5 .. $num-1];# 最後からデータを取得
foreach (@lists) {
print $_,"<br>";
}
}
Wednesday, April 04, 2007
prototype.js のサンプル
----time.pl----
#!/usr/bin/perl
use strict;
print 'Content-Type: text/html', "\n\n";
my ($ss, $mn, $hh, $dd, $mm, $yy) = localtime(time);
$yy += 1900;
$mm++;
my $my_time = sprintf("%04d.%02d.%02d %02d:%02d:%02d", $yy, $mm, $dd, $hh, $mn, $ss);
print $my_time;
---end---
<html>
<head>
<script type="text/javascript" src="./js/prototype-1.5.0.js"></script>
<script type="text/javascript">
//<![CDATA[
function updateResult(req){
$("status").innerHTML = req.responseText ;
}
function update() {
var url = './time.pl';
var params = 'c=time';// つかわないが。。
var ajax = new Ajax.Request(url, { method: 'post',
parameters: params,
onComplete: updateResult
});
}
function adListener() {
periodicalExecuter = new PeriodicalExecuter(update, 1);
}
//]]>
</script>
</head>
<body onload="adListener()">
time :
<span id="status"></span>
</body>
</html>
#!/usr/bin/perl
use strict;
print 'Content-Type: text/html', "\n\n";
my ($ss, $mn, $hh, $dd, $mm, $yy) = localtime(time);
$yy += 1900;
$mm++;
my $my_time = sprintf("%04d.%02d.%02d %02d:%02d:%02d", $yy, $mm, $dd, $hh, $mn, $ss);
print $my_time;
---end---
<html>
<head>
<script type="text/javascript" src="./js/prototype-1.5.0.js"></script>
<script type="text/javascript">
//<![CDATA[
function updateResult(req){
$("status").innerHTML = req.responseText ;
}
function update() {
var url = './time.pl';
var params = 'c=time';// つかわないが。。
var ajax = new Ajax.Request(url, { method: 'post',
parameters: params,
onComplete: updateResult
});
}
function adListener() {
periodicalExecuter = new PeriodicalExecuter(update, 1);
}
//]]>
</script>
</head>
<body onload="adListener()">
time :
<span id="status"></span>
</body>
</html>
Tuesday, April 03, 2007
Perl CGIスクリプトをコマンドラインから実行する
ブラウザでしか確認できないということをよく聞く。コマンドラインから実行した方がはるかに簡単にデバッグできる。
----test.cgi-----
#!/usr/local/bin/perl
use strict;
use CGI;
print "Content-type: text/html;charset=Shift_JIS\n\n";
my $q = new CGI;
my $name = $q->param('name');
my $id = $q->param('id');
print $name,"\n";
print $id,"\n";
以下のような場合
./test.cgi name='moji' id=2 と実行すればよい。
----test.cgi-----
#!/usr/local/bin/perl
use strict;
use CGI;
print "Content-type: text/html;charset=Shift_JIS\n\n";
my $q = new CGI;
my $name = $q->param('name');
my $id = $q->param('id');
print $name,"\n";
print $id,"\n";
以下のような場合
./test.cgi name='moji' id=2 と実行すればよい。
Subscribe to:
Posts (Atom)