JavaScript - サーバー間で双方向のRPC通信を行う技術は「Aerial」(エアリアル)という名前になりました*1。アイディアを出していただいた皆様、ありがとうございましたm(_ _)m Aerialは、通信にFlashを使い、JavaScriptとサーバープログラムとの間で双方向のRPC呼び出しを行う技術です。つまり、サーバー側からJavaScriptのメソッドを呼び出したり、逆にJavaScriptからサーバー側のプログラムを呼び出したりします。 サーバーから直接JavaScriptのコードを呼び出したり、逆にJavaScriptからサーバー側のメソッドを呼び出したりできるので、通信の内容を意識する必要がなく、バグの混入を抑えます。RPC成分入り! ライブラリを開発するときも、HTTPやブラウザ間の実装の違いを意識する必要も無く、ごく普通のTCP接続で通信を行うので、Come
オケラとかサッパリとか言う名前の駄目ブラウザ達のせいで、イマイチ実用的でなかったJavaScript → Flash間通信(逆は一応動く)。 モダンブラウザを全てサポートして、無理やり可能なことが発覚。 さぁ、奥さん。これは買わなきゃ損ですよ!! 用意するものは、swfファイル2つとhtmlファイル2つ。 ロジックは以下の通り。 1.htmlAにある、swfAに対して値を送りたい。 2.JavaScriptでIFrameに、swfBを持つhtmlBをロードする。 3.htmlBの生成時に swfBのobjectタグに、送信したい値をflashVarsで書き込む 4.値を受け取ったswfBはローカルコネクション(LC)を作成、LC経由でswfAに値の通知を行う。 5.swfAは無事に値を取得! まさに、Flash beyond the Ajax!!これなら変数どころか、関数だって呼びだせます
いままではLocalConnection使うロガーをつかってたんだけど、JSと同じところで見れたほうが楽かなと思って作ってみた。 import flash.external.ExternalInterface; class Logger { public static function trace(msg) { return ExternalInterface.call("window.console.log", msg) || ExternalInterface.call("opera.postError", msg) || ExternalInterface.call("printfire", msg) || ExternalInterface.call("Debug.writeln", msg) || ExternalInterface.call("debug.trace", msg
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く