LINE(自動更新チャット)の仕組みについて教えてください。
LINEのように、相手側が入力すると
自分側が、LINE開いたままでも、
常に更新されているのは、どのような仕組みでしょうか?
私は、普通の掲示版は作れるようになりました。
そこで、その掲示版に、他ユーザーが入力更新すると、
見ている他ユーザーの画面も更新させるとなれば
難しいのでしょうか?
これはPerlというよりHTMLのメタやjavascriptになるのでしょうか?
■HTML
<meta http-equiv="Refresh" content="1">
↑これのスパンを短くするとか?
■JavaScript
<script language="javascript">
<!--
function rld(){
location.reload();
}
function timset(){
var tid = -1;
tid = setTimeout("rld()",1000);
}
//-->
</script>
</head>
<body onLoad="timset();">
これらですと、更新はされるようですが、
※画面のチラツキが気になりますが。。。
常に更新されている形なので、サーバー側やユーザー側に
負荷がかかるように思います・・・
質問①
上記のようなことを、
サーバー、ユーザーに負担をかけず、LINE風にすることは
できますか?
質問②
私の認識がまだ曖昧なものが多く、上記のような認識
で合っていますか・・・?
質問③
これが、本題になるかな?
サーバー側で、掲示版が入力されたとき、
ページを更新させるようにしたいです。
難しいでしょうか・・・?
これはサーバー側になるので、CGIのほうがいいかなと思いました
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんにちは
ブラウザベースということでよいのでしょうか?
大まかに言って、ブラウザから『更新ある?』と一定間隔でサーバにリクエストを送り、更新があれば表示を更新する(更新がなければしない)という方式と、新しい更新データを受け取った際に、サーバ側から接続中のブラウザ(全体に)『更新されたよ!』と新しいデータを送る方式とがあるようです。
後者の場合は、サーバ側で接続しているクライアントの情報を管理しておく必要がありますが、無駄な通信が発生しない分だけ効率は良いと思われます。
ご提示の、
http-equiv="Refresh" を利用する方法や
location.reload(); で再読み込みするといった方法では、
更新がなくても(同じ内容で)書き直すことになるので、間隔が短ければチラつきの原因となります。(間隔が長くても、書き直す際にはチラつきがでます)
上述のように、「更新がなければ表示はそのまま」というような仕組みにしておけば、リクエストを繰り返す方法であったとしても、見た目には気にならなくなるでしょう。
とはいえ、1秒毎のリクエストだと、必ずそれに答えられるという環境はそうは多くないかもしれませんね。「結果を受信してから〇秒後に再度リクエストする」などとしておくほうがよさそうな気がします。
間隔に関しては、その掲示板(?)がどれだけリアルタイムである必要があるかによって決まってくるものと思います。
(環境の結果としての通信速度以上に速くなることはあり得ませんけれど)
検索すればいろいろ情報が見つかると思いますが、以下のサイトあたりが参考になるかも知れません。
http://tsujimotter.hatenablog.com/entry/2014/03/ …
https://ja.wikipedia.org/wiki/Push%E6%8A%80%E8%A …
>大まかに言って、ブラウザから『更新ある?』
後者のことを実現させたいですね。
>1秒毎のリクエストだと、必ずそれに答えられるという環境はそうは多くないかもしれませんね
そうですよね。
ご掲示くださったサイトも目を通してみました。
http://tsujimotter.hatenablog.com/entry/2014/03/ …
https://iritec.jp/web_service/6632/
私が見たサイトの中で、これも参考にはなったのですが、
ご掲示くださったソース、自分で見たソースも
PHPで、私は、Perlしか使えません・・・
Perlでのサンプルを探しているのですが、
なかなか見つかりません・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- MySQL 「掲示板のログイン画面」はPHP~MySQLに「データベース認証のシステム」方式です。 1 2022/09/27 05:00
- PHP 掲示板のセキュリティについてアドバイスお願い致します 1 2023/08/11 20:44
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- その他(メールソフト・メールサービス) Thunderbirdのメール送信ができません 1 2022/10/28 16:54
- WordPress(ワードプレス) ワードプレスのエラー ログイン画面が表示できない 1 2022/11/05 09:51
- JavaScript GoogleChart 階層ごとのブロックの長さを個別に設定したい 1 2022/07/06 14:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavaScriptを使用して、クライ...
-
webの文字データの取得
-
リアルタイム表示ホームページ...
-
PHPとjavascriptで共通なエンコ...
-
フォルダを自動で開く
-
JSPの処理の途中で、JavaScript...
-
PowerPointで時計表示
-
VBA ステータスバー DoEvents
-
gas 全角数字を半角数字に変換
-
if(1){...}とはどういうことで...
-
ローカル環境で動作しないJavaS...
-
助けてください!スパムメール...
-
C#の質問です。
-
C#でボタン名を変更しても動く
-
amazonの商品画像拡大のようなj...
-
エクセルVBA/ Formatで文字列が...
-
正整数の半角数字かどうか判定する
-
リアルタイム時計をミリ秒まで...
-
xmldoc.loadで複数のファイル...
-
javascript中の記述でのJSP文<%%>
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JavaScriptを使用して、クライ...
-
Wordpressでヤフー知恵袋やgoo...
-
PHPとjavascriptで共通なエンコ...
-
CGIとJavascriptの違いについて
-
3次方程式の実数解をニュートン...
-
二択質問作ってその成績表を横...
-
ASPによるEXCELファイルの操作
-
CGIのアンケートについて
-
PHPとJavaとC#の違い
-
CSJSとSSJSの違い
-
javascriptをつかって売上管理
-
Session切れ前にWarningメッセージ
-
独自の検索エンジンを作るには!?
-
XMLHttpRequestのレスポンスが...
-
JSONPの使い方について詳しい方...
-
Webサイト設計 データの記録
-
リアルタイム表示ホームページ...
-
クリックイベントに関して
-
JavaScriptの負荷について
-
javascriptでweb上にファイル作成
おすすめ情報