404 お探しのページは見つかりません GREE Engineering トップへ戻る
XMLHttpRequest を使って取得したバイナリーデータ(画像)をブラウザに表示してみました。firefox のみ。 JavaScriptでバイナリを扱う & XPCOMを使ってローカルのデータベースにアクセス with Firefox の記事を読んでいて、そういや Ajax ではどうなん?と思ってやってみた。 ■ 他に参考にしたのは以下の記事。 [comp]JavaScriptでバイナリファイルの中身にアクセスできた ■ base64 エンコードには下記のコードを使いました。 JavaScript で Base64 の符号化と復号化 <html><head> <script type="text/javascript" src="base64.js"></script> <script type="text/javascript"> load_url = function(url)
参考資料(というか主要なアイデアほとんど全部)はこちら。 http://mgran.blogspot.com/2006/08/downloading-binary-streams-with.html 何に使うのかはこれから考える。 でかいファイルを食わせてループでString.fromCharCodeを回したらFirefoxが死んでしまったのでそこだけ注意。 (mal_blueさん,nanto_viさんに直して頂いたコード版) <html><head> <script> load_url = function(url) { var req = new XMLHttpRequest(); req.open('GET',url,false); //XHR binary charset opt by Marcus Granado 2006 [http://mgran.blogspot.com]
やっていることは「高度な JavaScript 技集」の「UTF-8 <-> UTF16 変換」と同じ。 function toUTF8Octets(string) { return unescape(encodeURIComponent(string)); } function fromUTF8Octets(octets) { return decodeURIComponent(escape(octets)); } encodeURIComponent は encodeURI でもいい (むしろそのほうが処理する文字種が減って速くなりそう) が、decodeURIComponent は decodeURI にすると一部の文字 ("?"、"#" など) がデコードされなくなる。 使いどころ Base64 エンコードする関数 (「高度な JavaScript 技集」の base64encod
Firefoxの2.0系はSQLiteを内臓してるらしいというのを偶然発見し、XPCOMを使ってローカルのSQLiteデータベースから画像データなどのバイナリをとってきてブラウザに表示したら面白いかもと思ったのでやってみた。 ちなみにXPCOM とは、mozillaのソフトウェアなどに実装されている実装言語やプラットフォームに依存しない、共通インターフェースを持つライブラリです。 例えば、firefoxのaddonを作る上で、プラットフォームの機能を利用する際に使います。OSが管理するローカルリソースにアクセスしたりとほとんど何でもできてしまいます。XPCOM自体はC で書かれていますが、JavaScriptバインディングもあるので、addonを作る際は、見た目はXULで作り、処理はJavaScriptとXPCOM(JavaScript経由)で書くのが一般的です。 この仕組みの概念図とし
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く