🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

Q&A

4回答

1477閲覧

ajaxの定期実行について、ブラウザを最小化したときどうしていますか?

gakkie

総合スコア1

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

0グッド

1クリップ

投稿2021/01/10 17:11

編集2021/01/10 23:12

ajaxでメール(TwitterのDMのような)を定期確認するコードを書きました。

ところでこういった定期処理する場合、ブラウザを閉じたときブラウザを最小化したとき(あとスマホで別画面を開いたとき)はどうしますか?定期処理を一時停止しますか?

また、何日も定期処理され続けるというのもおかしな話なので制限時間を設けるべきだと思いますか?だとしたら何時間ほどでしょうか?

自分がしたいようにすべきですし、自分の目的に叶うようにすべきですが、初めての制作で何もわからないので、ごくごく一般論としてお尋ねしたいと思っています。

例えばツイッターのメール確認はこうだろうとか、FaceBookではこうだろう、といった予測でも構いません。

実装経験のある方からいろいろなご意見を伺いたく存じます。
宜しくお願い致します。

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

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

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

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

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

m.ts10806

2021/01/10 23:33

「どのようにしたいか」次第では。 ご自身で決めるだけですよ。あとはミニマムコードで想定通りになるか、問題ないかを検証。
guest

回答4

0

ところでこういった定期処理する場合、ブラウザを閉じたときはどうしますか?定期処理を一時停止しますか?

ブラウザを閉じたらそもそもAjaxで書かれた定期処理は停止すると思います。

また、何日も定期処理され続けるというのもおかしな話なので制限時間を設けるべきだと思いますか?だとしたら何時間ほどでしょうか?

メールサーバの仕様?(そもそも「メール」とは何を指すのかいまいち不明ではありますが)など分からないのでなんとも言えませんが、何日も定期処理され続けることがおかしいとは思いません。サーバの死活監視などはサーバが存在する限り永遠に行われていたりします。

それよりも定期処理の頻度の方がまだ重要に思えます。毎分なのか、1時間ごとなのか?、ユーザが増えればサーバの負荷もそれらの数値に応じて変わります。数人がアクセスするようなサイトであれば毎分でも負荷はかかりませんが、100万人がアクセスするサイトならそれぞれが1時間ごとの定期処理でも相当な処理をかかえることになり、かなりの負荷がかかります。

この手の処理は一般的には「ポーリング」と呼ばれていて、最適なポーリング間隔を見つける作業は結構大変だったりします。場合によってはクライアント側で状況に応じて間隔を変動させたりするパターンもあります。

参考)
https://kyogom.com/tech/optimize-polling/

また、ポーリング間隔が長くなる場合はクライアントへの反映タイミングが遅れてしまう場合が多くなるので、即時性を求める場合は「WebSocket」などの双方向性のある技術の利用も検討すると良いかもしれません。ただし、こちらも色々と制約があるので、すべての要件に対応できるとは限りません。もし興味があればしっかり調べてから試してみてください。

投稿2021/01/10 18:23

AbeTakashi

総合スコア4853

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

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

gakkie

2021/01/10 18:34 編集

ありがとうございます。ポーリングやWebSocketというワードを知りませんでした。色々検索してみます。 すみません、以下訂正しました。いかがでしょうか? 「ブラウザを閉じたとき」→「ブラウザを最小化したとき(あとスマホで別画面を開いたとき)」 > そもそも「メール」とは何を指すのかいまいち不明ではありますが TwitterのDMと同じ感じです。mysqlでテーブルに入れています。
AbeTakashi

2021/01/11 04:30

必要のない処理はしないにこしたことはありません。最小化から戻す際に最新の状態で表示が反映されてなくてもよければ処理はしない方が良いと思います。その辺は要件次第かと。 メールがMySQLであってもそんなに話は変わりません。MySQLの処理が減れば減るほどサーバの負荷は低くなります。こちらも要件次第になると思います。お伝えしたワードを検索すれば色々出てくると思いますので、試行錯誤で実装してテストしてみるといいと思います。
guest

0

定期処理を一時停止しますか?

当然、停止するか極めて長い間隔にするでしょう。

Page Visibility API を使えば実装は簡単ですね。

投稿2021/01/14 02:53

int32_t

総合スコア21679

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

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

0

例えばツイッターのメール確認はこうだろうとか、FaceBookではこうだろう、といった予測でも構いません。

ちょっと何を言っているのか分かりませんが、ブラウザの開発ツールを使用することでフロントでの挙動は調査可能です。
定期処理に関しては、通信が発生する前提でネットワークタブを監視すれば確認できるかと。

投稿2021/01/10 23:19

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

gakkie

2021/01/10 23:22

どのあたりが難しかったですか?以下だとわかりますか? 例えばツイッターのメール確認はこうだろうとか、FaceBookではこうだろう、といった予測でも構いません。 ↓ 例えば、 「ツイッターのメール確認はこうだろう」 「FaceBookのメール確認はこうだろう」 といった予測でも構いません。
退会済みユーザー

退会済みユーザー

2021/01/10 23:29

難しくは無いです。意味が分からないだけで。
gakkie

2021/01/11 00:00 編集

どのあたりの意味がわからなかったのですか?上の変更でもわかりませんでしたか? そしたら以下だとわかるでしょうか? 例えば、 「ツイッターのメール確認は、〇〇のようにしていると思う」 「FaceBookのメール確認は、〇〇のようにしていると思う」 などのように、ご回答者さまの予測でも構いません。
gakkie

2021/01/11 00:05

「ツイッター」や「FaceBook」というのは、インターネットを使ったコミュニケーションサービスです。そのサービスでメールを送信する仕組みがあるので、それについての予測があれば伺いたい。という意味になります。これらのサービスをご存じないと、たしかに意味がわからないかもしれませんね。
退会済みユーザー

退会済みユーザー

2021/01/11 00:12

メールじゃなくて、message では? 用語定義が適切ではないので、他の回答者も困惑してます。
guest

0

ブラウザ上で実行するプログラムとして作成して動かしているのなら、ブラウザを閉じれば終了です。
バックグラウンドで動き続けるような事はできません。

そういった「決められた時間スケジュールに沿って、止めるまで永遠に繰り返し何かをする」ようなシステム(定時起動バッチ処理、と言います)を作る場合、ブラウザのようなアプリの上に作るのではなく、ずっと電源いれっぱの専用環境(サーバー)を用意し、そこで動かすように作ります。

最近だとクラウド上に簡単にサーバーが借りられるので、何かを定期的にチェックするようなプログラムを作って動かしている人は、個人でも沢山います。

クラウドサービスとして、GoogleがやってるGCP、AmazonがやってるAWSが有名で、無料で使えるサービスもあり、解説サイトも沢山あるので、調べてやってみると面白いですよ。

投稿2021/01/10 18:19

umau

総合スコア831

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

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

gakkie

2021/01/10 18:33

ありがとうございます。GCPもAWSも知らなかったので検索して調べてみます。 すみません、以下訂正しました。いかがでしょうか? 「ブラウザを閉じたとき」→「ブラウザを最小化したとき(あとスマホで別画面を開いたとき)」
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問