THEBBS.CGI with Ajax
http://jjx.xxperlxx.org/tbj/tbj.html
なんとか1日でできた……。 僕の集中力も捨てたもんじゃないですね。
細かい機能はつけてませんが、JavaScriptとAjaxの勉強なのでよしとします。
書いてた時間よりJavaScriptとニラメッコしてる時間の方が長かった気がしますけ。
で、名前の通りFullAjax(=全部通信は裏で)のTHEBBS.CGIです。
感想とか不具合あればよろしくお願いします。 サーバ側とかほんとに書き殴ったのでおかしな動きしそうな予感。
それにしてもJavaScriptは難しくて奥が深い。 prototype.jsつかったサンプルコード見てると、createなんとかとかいっぱいみるけどわけわからん。
まぁ勉強しよう!
JavaScriptのお勉強
Cometとかもやってみたいことは確か。
しかし、今のところこんなコードを書いている状態。 サーバ側はなんとでもなるけど、やっぱJavaScriptはダメダメ。
http://jjx.xxperlxx.org/~jjx/src/tbj/js/tbj.js
書いているときの気分が初めてプログラミングしたときと似ているので楽しいのは楽しいんだけど、自在になにかをつくれるというレベルに全く達してない。
JavaScript&prototype.jsについてよく学んで、しかる後にCometやらなんやらにも手を出してみようと思う。
このサイト、素晴らしいと思います。 JSの基本についてばっちり理解が深まりました。
http://starry.night.nu/web/prog/javascript/
tojsstr.pl
JSの中にHTMLを埋め込みたいとき……
perl jsstr.pl file1 file2 ...
#! /usr/bin/perl # tojsstr.pl use strict; my @files = @ARGV; foreach my $file (@files){ my $f = 0; open( my $in, $file ); while( my $line = <$in> ){ chomp($line); $line =~ s/"/\\"/g; print( ($f ? '+' : '') . '"' . $line . '"' . "\n" ); $f++; } close($in); }
JavaScriptで連想配列を回す
Perlにおける下のようなことをJavaScriptでしたいんだけど、わからない。
foreach my $key (keys %hash){ ...... }
自分で答えを書いてみる。
prototype.jsを使ってる場合、Hashオブジェクトを利用すれば、keys()やvalues()が使えるらしい。
for( var key in $H(hoge).keys() ){}
と、思ったんだけど、だめだ。 JavaScriptのfor〜inはこういう用途では使えないらしい。 詳しく書くのは面倒だけどとにかくだめ。ということで、
var hash = $H(hoge); var keys = hash.keys(); for(var i=0; i<keys.length; i++){ ...... }
これで思ったんですが、こういうコトさせる場合JavaScriptよりPerlのほうが遙かに強力な気がします。
もちろん僕がPerlに慣れてると言うこともありますが、Perlだったらgrepやらmapやら使って1行で済む処理が長々と書かないといけないことが多々あります。
ちょっとうんざり。 クライアント側もPerlでかければなー。 サーバ側とクライアント側を両方同じ言語で書ければかなり生産性上がると思うんですが……。
ところでどっこい。 元某P氏に死んだことにされていましたので一応生存報告しておきましたとさ。
メモ:JavaScriptで配列を初期化
Array.length = 0; でよかったり?
再び挫折? そして予定
よくある数年前にはやったバトロワ風CGIゲームを画面遷移0のFullAjax(なんじゃそりゃ?)で書いてました。
挫折しました。 いや、正確には挫折しかけです。
挫折したとしても、FullAjaxでアプリケーションを作るときのコツはわかってきました。
とりあえず、今回の経験を元に、簡易フレームワークを改良して公開したいと思います。
需要はおそらくないですが、モチベーション維持のために公開を宣言しておきます。
とはいうものの、今回FullAjaxは無駄に大変だなぁと実感したわけです。
やはり適材適所が一番で画面遷移も普通に織り交ぜた方が楽なのかもしれません。
その辺も考えながらフレームワークは作っていきます。