この記事は,日経ソフトウエア2007年1月号,連載「簡単実装で学ぶWeb技術2006」の第7回「Comet――プッシュ型のWebアプリケーションを作る」の再録です。記事は執筆時の情報に基づいており,現在では異なる場合があります。 こんにちは,結城浩です。 今回は,サーバーからデータをプッシュするタイプのWebアプリケーションを作成する技法の「Comet」を紹介します。簡単なチャット・プログラムを通してCometの仕組みを学びましょう。 Cometとは 通常のWebアプリケーションは,クライアント(Webブラウザ)から送られてくるリクエストを受け取って動作します。つまり,WebアプリケーションはユーザーがWeb上のリンクをたどったり,ボタンを押したりすることをきっかけに動くのです。ここで,動きの主導権はクライアント側にあります。クライアントがサーバーから情報を「引き出す」ことによって動作する
Ajaxは近ごろ人気を集めているが、その人気は伊達ではない。Ajaxを使うことで、より迅速に、より効率良く、より動的なアプリケーションを開発することができるのだ。しかし、Ajaxには固有の落とし穴もあるのだ。 こういった落とし穴は一見したところ、単なる常識を使うことで避けられるように思える。そして、この見方はある意味において正しい。しかし、Ajaxアプリケーションはその先祖にあたるDHTMLとはアーキテクチャが大きく異なっているのだ。あなたがアプリケーション開発作業においてどれ程の常識を発揮しようと、先人たちの犯した過ちから学んでおく方が良いことに変わりはない。そこで、こういった過ちを7つの大罪と呼ぶことにする。ただし、過ちは決してこれらだけに留まらない。 事実、こういった7つの大罪のいずれかを犯す前により小さな過ちを犯す可能性が高い。このため、まずはこのような小罪を7つ見てみることにしよ
Ajaxの弱点を補うscript.aculo.usの楽しいエフェクト:パターンとライブラリで作るAjaxおいしいレシピ(4)(1/4 ページ) script.aculo.usの一歩進んだテクニック 今回紹介するscript.aculo.usは、以下のような機能を提供するAjax(JavaScript)フレームワークです。 ビジュアルエフェクト ドラッグ&ドロップ DOM操作 オートコンプリート スライダー 単体テスト prototype.jsをベースのライブラリに使用しているので、prototype.jsとともに利用したことがある方も多いのではないでしょうか。 今回はscripot.aculo.usのエフェクト機能に焦点を絞り、より突っ込んだ使い方を紹介していきます。 ■ Ajaxの弱点を補う「エフェクト」の必要性 Ajaxを活用することで、画面全体を再描画せずに画面上の一部分のみを変更し
米Mozilla、JavaScript EvangelistのJohn Resig氏 Adobe MAX Japan 2007やユーザコミュニティなど、いくつかの講演を目的として来日したJohn Resig氏に、将来のFirefoxで搭載されるJavaScript実装やjQueryについて所見をいただいた。John Resig氏はMozillaでJavaScript Evangelistを務める人物。jQueryのメイン開発者でもある。業務ではMozillaでJavaScriptコミュニティとの調整役を務め、夜間や週末はjQueryの開発に没頭している。同氏が見るJavaScriptの未来はFirefoxのみならず、ほかのWebブラウザにとっても重要なものだ。 Tamarinの寄贈から1年、Firefox 4とFlash10でお目見え ちょうど1年ほど前の2006年11月7日(米国時間)、
「Google」や「Yahoo!」などWebで提供される多くのサービスが「Ajax(Asynchronous JavaScript+XML)」というリッチクライアント技術を利用している。Ajaxにより,従来のWeb技術では考えられないようなユーザー・インタフェースのシステムも登場してきた。こうした潮流は,徐々にではあるが企業の業務系Webシステムにも影響を及ぼしてきている。 だが,実際にAjaxのシステム構築に携わったITエンジニアの多くは,「甘いものではない」と口をそろえる。「必要な要素技術の数が増えるので,設計や開発の難易度が確実に上がり,デバッグも難しくなる。1人で設計・開発できるシステム規模ならエキスパートの投入で乗り切れるが,複数の開発者が参加する大規模システムでは,(たとえ開発支援ライブラリを使ったとしても)品質がバラついてしまう」(NTTデータ 技術開発本部 ソフトウェア工学
サイボウズ・ラボ株式会社に勤めるWebプログラマ。出身は石川県金沢市。21歳でプログラミングに出会い,IT戦士になることを決意。それからというもの,寝ても覚めてもプログラムを書き続け今に至る。はてなでamachangというidでブログを書いてます。 最近,「とんがった」プログラマの間ではJavaScriptがちょっとしたブームです。あちこちの書店で,JavaScriptの書籍を見かけるようになりました。「はてブのホッテントリ」*1にも,よくJavaScriptの記事が入っています(図1)。 その人気を象徴的に示しているが,Shibuya.js*2という団体が開催しているJavaScript関連のイベント「Technical Talk」です。1回目は2006年4月,2回目は6月に開催されましたが,いずれの回も予約が殺到し,たった1日で席が埋まってしまいました。これには「JavaScriptの
セキュリティが強化されたWindows Vistaの登場により,ボット問題は沈静化に向かうだろう。その一方で,JavaScriptを使ったWebブラウザへの攻撃が急増している。「業務のすべてをWebブラウザで提供する」という流れの中で,大きな脅威になりそうだ。 JavaScript攻撃の狙いはボットと同じ 攻撃者がJavaScriptで狙うのはボット同様,金銭にかかわる情報である。最も価値があるのは,クレジットカード番号と,銀行サイトへのアクセス権をもたらすIDとパスワードである。これらの機密情報を盗むために,Webメールや社員向けWebサーバーがターゲットとなる。 情報を盗むために使われる典型的な手法として,クッキーの横取りがある。その手法とは,Webブラウザに「横取り用のJavaScript」を送り込むというもの。具体的には,(1)クッキーを読み出す,(2)このクッキーを攻撃者の管理下
This domain may be for sale!
Google AJAX Feed APIとは? Googleは16日、「Google AJAX Feed API」を公開した。Google AJAX Feed APIは、RSS/Atomなどの各種フィードを取得するためのJavaScript APIだ。 これまで、JavaScriptでフィードを取得し、取り扱うには以下のような問題があった。 JavaScriptはセキュリティ制限上、生成元のホストにしかXMLHttpRequestなどを使用したネットワークアクセスを行うことができない(これを同一生成元ポリシーと呼ぶ)。そのため、単純に他のホストからフィードを取得するようなコードを書くことができず、自ホストのサーバにプロキシを置いておき、そのプロキシ経由でフィードを取得するなどの対処が必要であった フィードの形式が乱立している。これで困るのはJavaScriptに限った話ではないが、ことサイ
前回はクロスサイト・スクリプティングのぜい弱性を突く攻撃の対策としてのHTMLエンコードの有効性を述べた。ただ,HTMLエンコードだけではクロスサイト・スクリプティング攻撃を完全に防御することはできない。そこで今回は,HTMLエンコードで対処できないタイプのクロスサイト・スクリプティング攻撃の手口と,その対策について解説する。 HTMLエンコードで対処できない攻撃には,次のようなものがある。 タグ文字の入力を許容している場合(Webメール,ブログなど) CSS(カスケーディング・スタイルシート)の入力を許容している場合(ブログなど) 文字コードを明示していないケースでUTF-7文字コードによるクロスサイト・スクリプティング <SCRIPT>の内容を動的に生成している場合 AタグなどのURLを動的に生成している場合注) 以下では,HTMLタグやCSSの入力を許容している場合と,文字コードを明
Spry framework for Ajax(以下、Spry)は、アドビが提唱しているデザイナー向けの JavaScript ライブ ラリです。無償で配布されているこのライブラリを利用することで、サーバサイドで特別なプログラムを用意したり、ユーザの Web ブラウザへ新たなプラグインをインストールすることなく、今話題の Ajax を利用した動的でリッチなインタフェースやコンテンツを HTML の中に作り出すことができます。 “デザイナー向け”というのが Spry の大きな特長であり、他の Ajax ライブラリと比べてもユニークな点です。Spry そのものは JavaScript ライブラリ群ですが、難解な JavaScript のプログラミング知識はそれほど必要ではありません。HTML コーディングのスキルがあれば、XML からのデータを取得し、加工し、ダイナミックな形で Web ページ
デベロッパがFirefoxを使う理由はエクステンション! Ajax Webアプリケーションの開発者には、WebブラウザとしてFirefoxを愛用しているユーザが多い。その理由のひとつに豊富なエクステンション機能が挙げられる。Firefoxを使っているからエクステンションを使っているというよりも、エクステンションを使いたいからFirefoxを使っているという感じだ。 デベロッパに人気のあるエクステンションはいくつもあるが、代表的なところではAll-in-One GesturesやDictionarySearch、Greasemonkey、User Agent Switcher、ScrapBookなどを挙げることができる。そしてAjax Webアプリケーションの開発において必須ともいえるエクステンションに、Firebugがある。 Firebugに対する称賛の声は枚挙にいとまがない。「Fireb
GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠
GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠
AJAXは洗剤の名前!? スパムメールの“スパム”が、もともとアメリカに古くからあるハムの缶詰の商品名をもじったものだと知らない人はいまどき少ないだろうが、最近話題の“Ajax”(エイジャックス:Asynchronous JavaScript and XML)が、アメリカで販売されている洗剤のブランド名をもじったものだと知らない人はいるのではないだろうか。 WikipediaでAjaxの項を引いて、もう少し“Ajax”という名前の元をたどると、それはギリシア神話に出てくる英雄の名前だったり、小惑星の名前だったり、はたまた16世紀末にイギリスで発明された水洗トイレのことだったりするようだが、ここでは、それはどうでもいい。 IT業界では昔から製品名やプロジェクト名を付けるときに、まず略称ありき、という遊びがよく行われる。たとえば東京工業大学の大規模分散スパコン、“TSUBAME(ツバメ)”とい
GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く