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

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

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

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

PHP

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

JavaScript

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

Q&A

解決済

2回答

1978閲覧

いいね機能の実装の概要について

torimingo

総合スコア122

MySQL

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

PHP

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

JavaScript

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

0グッド

4クリップ

投稿2020/08/21 07:23

いいね機能の実装について、概要だけでいいので、教えて頂けないでしょうか。

たとえば、Aが投稿したコンテンツに対して、Bがいいねボタンを押します。
このとき、いいねの数が9から10にカウントアップされるとします。
Cは、Bがいいねボタンを押す直前からAのコンテンツを閲覧しており(いいねの数が9のときから閲覧しており)、Bがいいねを押した瞬間にいいねの数が9から10に自動的に切り替わるのを確認します。

上記のいいね機能の実装について、簡単でいいので、教えて頂けないでしょうか。
Bがいいねボタンを押したときに、MySQLサーバーに格納されているAのコンテンツのいいねに関するカラム(?)が9から10に更新されるということは、想像できるのですが、CがAのコンテンツを閲覧しているときに、いいねが9から10に自動的に更新される処理は、どのように実装すればいいのかわかりません。

Ajaxを利用しているようにも思えるのですが、Ajaxは、send()したときに、データが返信されるものだという認識を持っており、そうすると、Cがsend()して、いいねの数を得れば、上記を実現できそうですが、Cがsend要求を行うトリガーはどうなっているのかなど、わからなくなってしまいます。

もしご存知の方がおりましたら、教えて頂けると幸いです。

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

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

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

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

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

guest

回答2

0

見ている自分しか「いいね」しないわけではないので、
タイマーで定期的にいいねの数を取得する処理も持たせるのがよろしいかと。
1~2秒周期で、今表示中の投稿のいいねの数を再取得して画面上に反映するっていう。

twitterでも、スマホで見ているだけでも
どんどんRT数やいいね数が増えていくよう
画面が更新されるのがわかりますよね?

投稿2020/08/21 07:26

編集2020/08/21 08:07
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

torimingo

2020/08/21 09:41

ご回答ありがとうございます。 1、2秒周期で、Ajaxを使って、MySQLなどに問い合わせるイメージでしょうか。
退会済みユーザー

退会済みユーザー

2020/08/21 09:46

タイマー | JavaScript逆引き | Webサイト制作支援 | ShanaBrian Website https://shanabrian.com/web/javascript/timer.php timerを使って、指定ミリ秒数経過後に呼び出すユーザー定義関数を指定するような感じとか。
退会済みユーザー

退会済みユーザー

2020/08/21 10:45

やり方は一つじゃないので、まず実装してみればいいです。 (それとも、無駄なコードは書きたくないから、完全にやり方が分かるまでは1行も書きたくない、とか?)
torimingo

2020/08/21 10:57

そうですね、頑張って実装してみます。
torimingo

2020/08/22 05:22 編集

よくわからないんですが、webSocketを使うっていうのは、間違いかわかりますでしょうか。
guest

0

ベストアンサー

「いいね」にリアル性が求められるのかどうかは置いておいて、リアルタイムな web アプリを作成したいという事ですね?

php でやろうとすると結構ヤッカイです。

まず、実現する方法ですが、以下のサイトがざっくりと理解するにはよさそうでした。

リアルタイムなwebアプリを実現する方法(ポーリング、Comet、Server Sent Events、WebSocket)

php でお手軽に実装するのであれば、

・ポーリング
・comet もどき(ロングポーリング)

が候補にあがります。

サンプルも探せばそこそこあるので、セキュリティをそれほど気にしなくてよいのであれば、すぐに動かせる程度のモノはできると思います。
ただ、同時アクセス数によっては重いです。

php に拘らなければ、WebSocket で実装するのが楽です。
(SSE は IE が足を引っ張ります)
php でも WebSocket server は建てられるのですが、個人的にはメンドイので Firebase 等に任せてしまいます。

投稿2020/08/22 06:36

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

torimingo

2020/08/22 06:45

ご回答ありがとうございました。 サーバからクライアントへのデータ送信ができそう(?)なWebSocketについて、調べてみようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問