AJAX プログラミングの注意点

筆者が AJAX に触れたのはもう1年くらい前であって、そのあとはしばし AJAX から離れていた。それから最近また AJAX する機会があって、この PerlTips を見ながらコードを書いているが、苦労した点というのは1年も経つとやはり忘れてしまうらしい。それでもこの PerlTips を眺めていたら解決できたこともあったのでそれを注意点としてまとめてみた。おそらく誰もが陥りやすいワナだろう。
筆者が AJAX に触れたのはもう1年くらい前であって、そのあとはしばし AJAX から離れていた。それから最近また AJAX する機会があって、この PerlTips を見ながらコードを書いているが、苦労した点というのは1年も経つとやはり忘れてしまうらしい。それでもこの PerlTips を眺めていたら解決できたこともあったのでそれを注意点としてまとめてみた。おそらく誰もが陥りやすいワナだろう。
Posted on 2007-01-12 by yas |

OpenSSL で、秘密鍵と公開鍵が入ったファイルから公開鍵だけ取り出す方法

OpenSSL で CA.sh や CA.pl を使って自分で認証局を立てて自己署名した証明書を発行すると、証明書と秘密鍵が一緒に入った以下のようなファイルが作られる。ファイル名が同じであれば、拡張子つまりファイルフォーマットが違うだけでどれも内容は同じだ。 (クライアント)
  • cert-clt.pem
  • cert-clt.der
  • cert-clt.p12
(サーバ)
  • cert-srv.pem
  • cert-srv.der
  • cert-srv.p12
(認証局)
  • root.pem
  • root.der
  • root.p12
ここで、秘密鍵と公開鍵が入った cert-srv.pem のファイルから公開鍵だけ取り出すには、以下のコマンドを実行ればよい。 openssl rsa -pubout -outform PEM -in cert-srv.pem -out public-srv.pem 実行するとパスフレーズを聞いてくるので、秘密鍵のパスフレーズを入力する。すると、新規に public-srv.pem ファイルが作成されて cert-srv.pem に入っていた公開鍵だけが出力される。
OpenSSL で CA.sh や CA.pl を使って自分で認証局を立てて自己署名した証明書を発行すると、証明書と秘密鍵が一緒に入った以下のようなファイルが作られる。ファイル名が同じであれば、拡張子つまりファイルフォーマットが違うだけでどれも内容は同じだ。 (クライアント)
  • cert-clt.pem
  • cert-clt.der
  • cert-clt.p12
(サーバ)
  • cert-srv.pem
  • cert-srv.der
  • cert-srv.p12
(認証局)
  • root.pem
  • root.der
  • root.p12
ここで、秘密鍵と公開鍵が入った cert-srv.pem のファイルから公開鍵だけ取り出すには、以下のコマンドを実行ればよい。 openssl rsa -pubout -outform PEM -in cert-srv.pem -out public-srv.pem 実行するとパスフレーズを聞いてくるので、秘密鍵のパスフレーズを入力する。すると、新規に public-srv.pem ファイルが作成されて cert-srv.pem に入っていた公開鍵だけが出力される。

AJAX/JavaScript で、画像(image)を重ねる方法

AJAX で画面をライブアップデートして、地図の上の画像の位置が逐次変化するようなユースケースを考える。画像(image)を動的に生成して処理するには、
var icon = document.createElement('img');
として、
var icons = document.createElement('div');
の icons コレクションの中に追加すればよい。そして icons オブジェクトは HTML 中に宣言してある
に追加する。 しかしこれをずっと繰り返すと古い画像が地図の上に残ったままになる。そこで update メソッドの最初の方で
for(i = 0; i < icons.childNodes.length; i++) {
    try {
        icons.removeChild(icons.childNodes[i]);
    } catch(e) {
    }
}
という処理を入れて、icons ノードに含まれる個々の icon オブジェクト(image オブジェクト)を削除してあげればよい。
AJAX で画面をライブアップデートして、地図の上の画像の位置が逐次変化するようなユースケースを考える。画像(image)を動的に生成して処理するには、
var icon = document.createElement('img');
として、
var icons = document.createElement('div');
の icons コレクションの中に追加すればよい。そして icons オブジェクトは HTML 中に宣言してある
に追加する。 しかしこれをずっと繰り返すと古い画像が地図の上に残ったままになる。そこで update メソッドの最初の方で
for(i = 0; i < icons.childNodes.length; i++) {
    try {
        icons.removeChild(icons.childNodes[i]);
    } catch(e) {
    }
}
という処理を入れて、icons ノードに含まれる個々の icon オブジェクト(image オブジェクト)を削除してあげればよい。
Posted on 2007-01-06 by yas |

AJAX で、動的にテーブルを作る方法(中・上級)

先のエントリーAJAX で、動的にテーブルを作る方法(初級)では、感じをつかむために、ベタにテーブルを作成していたため、重複するロジック/コードが多かった。ここではそれをフレームワークっぽくした。こういう軽量なコードを理解した上で、ひな型として自分で持っておくと見通しがよくてよいと思う。 この JavaScript ではできるだけ Java のアプレットにならった構造やメソッド名に近づけた。つまり、
先のエントリーAJAX で、動的にテーブルを作る方法(初級)では、感じをつかむために、ベタにテーブルを作成していたため、重複するロジック/コードが多かった。ここではそれをフレームワークっぽくした。こういう軽量なコードを理解した上で、ひな型として自分で持っておくと見通しがよくてよいと思う。 この JavaScript ではできるだけ Java のアプレットにならった構造やメソッド名に近づけた。つまり、