Ajax/iframeを使ったAjaxでComet? http://www.ark-web.jp/sandbox/wiki/167.html

PHP Classes - PHP Classes blog: Responsive AJAX applications with COMET
http://www.phpclasses.org/blog/post/58-Responsive-AJAX-applications-with-COMET.html

[edit]

インチキ訳

With iframes, it becomes easy to return multiple responses to a 
single AJAX request. But you may ask, how does it work in practice?

iframeを使えば、1個のAJAXリクエストから複数のレスポンスを返すことができるらしい。

I have implemented a solution based on this forms generation and 
validation class:
http://www.phpclasses.org/formsgeneration

Manuel Lemosさん作のiframeを使ったAJAX用PHPライブラリでこれを実現したらしい。

It comes with a custom input plug-in class that can submit forms using 
an iframe based AJAX request. This plug-in generates an iframe and special 
Javascript code to submit the current form without causing the current page 
to reload.

このクラスによって生成されたFORMタグからsubmitすると、リロードせずに、動的にiframeとjavascript codeを生成し、そのiframe内でsubmitするらしい。

The server AJAX response is loaded in the iframe. The iframe has width 
and  height set to zero . This way, the users never see whatever is loaded 
in the iframe.

サーバーのAJAXレスポンスは、iframeの中に読み込まる。iframeの幅と高さは0なので、エンドユーザーには見えない。と言うことらしい。

That class output an empty HTML page with some Javascript code blocks to
execute many possible types of actions like updating specific parts of the
page, setting Javascript variables, redirecting the browser to another page,
etc..

などなどのアクションを行わせるjavascriptがiframeに呼び込まれ実行されるらしい。
なるほど、そうやってXmlHttpRequestがなくてもAjaxを可能にするのね。

The AJAX class calls the PHP flush() function to make those Javascript code
blocks be sent to the browser immediately.

サーバー側でflush()を実行すると、即座にiframe内に反映されるらしい。

This way, it can update the browser page while the AJAX request action is
still running on the server side.

この方法では、AJAXリクエストのアクションがサーバーサイドで有効な状態のまま、クライアントの状態を変更できる、と言うことですな。

ナルホドォ・・・
PHP側のプロセスが死なずに生き続ければ、確かにできるかも ^^;
接続しつつけていられないと、クリティカルな問題になるようなでない場合はよいかもですね。

投稿者志田 | パーマリンク

| append.gif

tag: Ajax, Comet


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-10-21 (土) 09:57:11 (4717d)

アークウェブのサービスやソリューションはこちら