http://www.muryoutouroku.com/free/keyplus.php?term=%A4%CF%A4%C6%A4%CA

このサイトで結果が徐々に表示されているのですが、どのような技術を使っているのでしょうか?
スクリプトの拡張子はphpとなっていますが、PHPの関数だけで可能でしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/01/26 11:01:08
  • 終了:--

回答(5件)

id:medical_blog No.1

medical_blog回答回数16ベストアンサー獲得回数02005/01/26 11:33:58

ポイント18pt

技術というような物ではなく、結果をgoogleやyahooに毎回問い合わせに行ってますので、時間がかかり時間差であのような表示になっているのだと思います。

故意的に行おうとするならば自サイト内でも良いですので、回答データーをURLリンクを張って結果を返すようにして、その結果を返すのに少しゆっくりになる制御をかければ可能かと思います。

id:Genze-o No.2

Genze-o回答回数4ベストアンサー獲得回数02005/01/26 12:05:30

ポイント18pt

初期設定では「チェック中」と表示されている部分をJavascriptによって書き換えています。ですのでJavascriptを無効にしてあると、結果が徐々に表示されることはありません。

PHPの関数だけでは難しいのではないかと思います。

id:siachan No.3

siachan回答回数80ベストアンサー獲得回数142005/01/26 12:32:05

ポイント18pt

まず普通にTABLEタグで「チェック中」という風に書かれた表を出力し、

結果が分かった物から順番にJavaScriptの

ID名.innerHTML=’ほにゃらら’

というのを出力して「チェック中」を実際の件数に置き換えています。

id:kazzzzz

「実際の件数」はバックエンドで動いているスクリプト(仮にA.cgiとする)の結果の値だと思うのですが、A.cgiの処理が終了したことをJavaScriptに知らせる方法が良く分かりません。ご存知でしょうか?

2005/01/26 15:14:29
id:siachan No.4

siachan回答回数80ベストアンサー獲得回数142005/01/26 15:28:31

ポイント18pt

tableタグを出力した後にその続きとしてscriptを吐いてるだけですから普通に出力するだけでいいと思いますよ。

一気に全てを出力しなければならないわけではなく、結果が分かったらその部分を出力していくだけです。

ブラウザにしてみれば「回線速度遅くて受信に時間が掛かっている」のと同じ状況ですから。

id:kazzzzz

テストしてみたら、希望の状態が再現できました。

innerHTMLの部分が読み込まれる度に「チェック中」のところが値と入れ替わっているのですね!

参考になりました。ありがとうございました。

2005/01/26 18:16:18
id:Genze-o No.5

Genze-o回答回数4ベストアンサー獲得回数02005/01/26 15:53:41

ポイント18pt

バックエンドのスクリプトの処理に任せなくても、該当ページ自体がPHPファイルなので、この中で処理が行われていそうな気がします。

該当するJavaScript部分はページ下部にあります。

出力バッファを切るかコントロールするかすれば、

出力内容が順次表示されますので、JavaScript部

分は最後の出力になります(つまりブラウザに解

釈されるのが遅れる)。

ブラウザに解釈されるのが遅れれば、その分その

場所に書いてある「innerHTMLを用いたドキュメン

トの書き換え」という処理も遅れてくることにな

るかと思います。

ですので、結果、順次表示されるということだと思います。

id:kazzzzz

私もソースを調べてみました。

おっしゃる通りですね。

回答していただいた皆様、ありがとうございました。

2005/01/26 18:18:11

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません