SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Scala+Liftによる実践Webアプリケーション開発

AjaxとCometを利用したLiftのアプリケーションを作る

Scala+Liftによる実践Webアプリケーション開発(5)

動作確認

 ここまでで、Cometを利用した画面を追加する準備ができました。早速、開発サーバを起動して動作確認しましょう。

 「mvn jetty:run」コマンドで開発サーバーを起動します。サーバー起動後に、http://localhost:8080/にアクセスすると、追加されたメニューが表示されていることが確認できるでしょう。

 追加された「ついったーのようなもの(Comet)」というリンクをクリックすると、空の画面がでてきます。この時点では、まだメッセージが投稿されていないので何も表示されていません。

図4:Cometを利用した画面(初期表示)
図4:Cometを利用した画面(初期表示)

 次に、別のブラウザやタブで、前回作成した投稿画面を表示させます。ここで、メッセージを投稿してみましょう。

図5:前回作成した投稿画面
図5:前回作成した投稿画面

 メッセージを投稿したら、先ほど表示させたCometを利用した画面を見てましょう。特にブラウザをリロードしなくても投稿されたメッセージが自動的に追加されてることが確認できるでしょう。

図6:Cometを利用した画面(メッセージ表示)
図6:Cometを利用した画面(メッセージ表示)

 次々とメッセージを投稿してみましょう。特に何もせずとも投稿したメッセージが追加されていく様子が分かると思います。

 実際に、Cometでサーバーから返されているレスポンスは、先ほどのAjaxの例と同じく、次のようなjQueryを利用したJavaScriptになっています。

[リスト9]Cometのレスポンス
try { destroy_F33081855446LO0(); } catch (e) {}
jQuery('#'+'F33081855446LO0_messages_span').prepend('<xml:Group>\u000a            <ul class="status">\u000a                <li class="message">\u3042\u3042</li>\u000a                <li class="user">Guest</li>\u000a                <li class="dateOf">Tue Dec 29 21:27:16 JST 2009</li>\u000a                <hr />\u000a              </ul>\u000a          </xml:Group>');
try { destroy_F33081855446LO0 = function() {}; } catch (e) {}

lift_toWatch['F33081855446LO0'] = '33081855477';

まとめ

 これまでの全5回の連載を通して、Liftという「関数型Webアプリケーションフレームワーク」という新しいコンセプトのフレームワークを紹介してきましたが、いかがでしたでしょうか。

 Scalaという新しい言語がもつパワーを生かしたLiftは、これまでのフレームワークとは異なったアプローチを取っています。一見Htmlを直接処理しているように見えて、実は透過的なテンプレートとSnippetアーキテクチャや、今回紹介したサーバサイドのみでのAjaxやCometなどです。

 Liftに触れることで、Scalaの持つ可能性を感じていただければ幸いです。

参考資料

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
Scala+Liftによる実践Webアプリケーション開発連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 尾崎 智仁(オザキ トモヒト)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/4887 2010/03/15 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー