質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

2340閲覧

phpでページ表示後も処理を継続

caiussuab001

総合スコア16

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/09/14 02:40

phpで、アクセスがあったら外部APIから情報を取得し、その情報を返す簡単なwebプログラムがあります。
その際次にアクセスがあるであろう内容を先読みして外部APIから情報を取得してデータベースに格納しておく処理を作ろうとしています。

phpでレスポンスを返してから裏で処理を継続する場合はどのような記述をすればよいのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

任意のキーワードに対して予測するのでしょうか?
そうなると冗長で膨大な要求を流すことになり
スパム扱いされるかもしれませんが大丈夫でしょうか?
最悪「岡崎市立中央図書館事件」のような誤解が生じるかもしれません。

逆に決められた選択肢があり、その範囲でデータのやり取りをするなら
データ量は極小化できるかもしれません
その場合は結果をDBなどにとりまとめておき、ユーザーからの
要求にあわせてDBから吐き出してあげるような流れになると思います

いまのご提示の情報からですとこれ以上突っ込んだ回答は難しいでしょう

投稿2017/09/14 02:55

yambejp

総合スコア114779

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

caiussuab001

2017/09/14 03:19

質問の内容がわかりにくくて申し訳ありません・・・。 ページAにアクセスしにきたら、次はBへのアクセスがほぼ確実に来るような状況で、Aへのアクセスがあった場合にAの情報をクライアントに返した後に、裏側では既にBへのアクセスに備えてAPIを叩いておいてBへのアクセスがあった際に素早くレスポンスを返せるようにしたいと思っています。 その際にレスポンスを返したあとも何かしらの処理をする際に、PHPでどのように記述をすればいいのかわからないという質問でした。
yambejp

2017/09/14 03:23

なるほど、そうなるとAページでajaxで先読みしておいて、ユーザーはBにはとばずAのなかで 非表示データを表示すればいいのではないでしょうか? もちろんAでよんだajaxデータをセッションやhiddenでBに渡してもいいですが そうするとB自体が読み込む機能をもつとデータが競合してしまいますからね
caiussuab001

2017/09/14 03:28

さっそくのご回答ありがとうございます。 クライアント側で先読みをしようとなるとユーザーがAPIのアクセスキーを見ることが出来てしまうため、できる限りサーバー側でAPIへの処理は完結するのが望ましいかなと考えています。 そのため、できればサーバー側でなんとかしたいと思っています。
yambejp

2017/09/14 03:36

ajaxはなにも直接アクセスキーを持たせてAPIを叩く必要はないでしょう Bで受け取る相当の機能をもったAダッシュページを用意し ユーザーがajaxでアクセスするのはAダッシュページにすれば良いわけです。
yambejp

2017/09/14 04:56

※発想の転換 もしかしたらAからBをajaxで読んでおくだけでBのページがキャッシュされるかもしれません。 期待値薄ですが試す価値はあります
guest

0

ベストアンサー

簡単に実装するならコマンドラインで動くプログラムを作って exec から呼び出しする方法があります。
ただ単純に実装すると大量にアクセスがくるとプログラムが同時に沢山起動してメモリとかが無くなります。

ちゃんと実装するならタスクキューを使うことです。phpのWeb側がタスクを追加。別途作ったワーカーがキューの内容を順次実行します。

色々タスクキューも種類が沢山ありますが一例として下記のURLとかが参考になります
http://blog.asial.co.jp/875

投稿2017/09/14 03:46

kero1209

総合スコア431

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問