人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHP jQuery

とあるWebアプリケーションで、ユーザーが入力した内容をバックグラウンドで処理する機能があります。

サーバー側でバックグラウンド処理が終わったら、ブラウザ側のユーザーに処理が終わった事を通知したいのですが、どのように実装すれば良いでしょうか?

jQueryやJavaScriptを利用した事が無いので、分かりやすい例があれば教えて下さい。


●質問者: webtomake
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● Lhankor_Mhy
●50ポイント

お手軽なのはAjaxによるポーリングですかね。

リバース Ajax の目標は、サーバーがクライアントに情報をプッシュできるようにすることです。Ajax リクエストはデフォルトではステートレスであるため、クライアントからサーバーに対して開始することしかできません。この制約は、応答性の高いクライアント・サーバー間通信をシミュレートする手法を使用することによって回避することができます。

リバース Ajax: 第 1 回 Comet の紹介


モダンなのはWebSocketなんじゃないでしょうか。

本格的にはsocket.ioなどをインストールして?というのがありますが
PHPだけでサクッと体験したい方は続きを御覧下さい。

PHPのみでHTML5のWebSocketを体験する方法 - [Swb:]渋谷に住むWEBデザイナの備忘録

webtomakeさんのコメント
ありがとうございます

2 ● braahmaNa
●50ポイント

javascriptやjqueryを利用された事が無いとの事なので、なるべくシンプルにjqueryでajax使うだけが良いのかな、と思いましたので以下の参考URLを回答にしてみました。
jqueryのajaxっていう手法でPHPへリクエスト→処理が終わったPHPがjqueryに結果出力→結果を受け取ったjqueryがユーザーに通知って流れです。

http://kihon-no-ki.com/jquery-php-ajax


webtomakeさんのコメント
ありがとうございます! サーバーサイド側で処理が終わったか終わってないかを確認する必要があるため、何秒間に1回はアクセスしなければならないのですが、その場合はどうすればいいのでしょうか? while()みたいな関数はあるのでしょうか? それとも例で出して頂いた内容であれば、接続は永遠に続くのでしょうか?

braahmaNaさんのコメント
サーバ側で処理が終わったら勝手にajax内定義の関数が呼び出されるので、自分で確認しに行く必要は無いですよ。 jqueryでは$.ajax内にsuccessっていう名前の関数定義すれば、それが呼ばれます。 その引数にサーバからの出力(echo メッセージとか)も入っているので、その内容に応じた処理をすれば良いかと思います。 webtomakeさんが仰っていた通知もこの関数内での処理で最初は問題無いんじゃないでしょうか。 慣れてきたらerror関数やcomplete関数の使用も検討して、ベターな選択をしてみて下さい。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ