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

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

新規登録して質問してみよう
ただいま回答率
85.50%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

JavaScript

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

Q&A

解決済

5回答

1040閲覧

JSでのウエブチャットログを残す方法を教えてください

hino00sns

総合スコア5

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

JavaScript

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

1グッド

1クリップ

投稿2019/10/11 20:50

編集2019/10/12 09:59

JSでリアルタイムチャットログ機能を模索中

いろいろ調べて何とかしてJSでのチャットサンプルを手に入れました。
HTMLしか使いこなせない私ですがこれでやっとチャットを装備して、楽しめそうです。

ただブラウザーそのものをリロードしたり閉じたりしてまたチャットページに入るとログが残ってないので
話がどこまで進んだかわからなかったりします。(チャットそのものは機能している)

そこでログを残すためにいろいろ調べてチャットのアップグレードを目指そうと思ったのですが、
思った以上に時間がかかってしまっています。

教えてください。
PerlでのCGIをつかったチャットは
datファイルを読み込ませれば、ログを保存してくれる仕組みになってました。

JSも同様にdatファイルを読み込ませればログが残りますか?

その場合どのようにソースコードを書けばいいのでしょうか、

サンプルチャットをGIFでドロップボックスに保存してあります。
よかったら使ってみてください。
https://www.dropbox.com/s/fyncnnfh5h5widu/javascript-chat-milkcocoa-demo-master.zip?dl=0

もしJSでログを残す方法やdatを読み込み書き込み保存ができる方法が具体的にあるのなら
~~ソースコードでの提示を深く望みます!~~おしえてください。

とにかくログを残したい!現在のソースコード↓

var BAAS = BAAS || {}; BAAS.cocoa = { init:function(){ this.setParameters(); this.bindEvent(); }, setParameters:function(){ this.$name = $('#jsi-name'); this.$textArea = $('#jsi-msg'); this.$board = $('#jsi-board'); this.$button = $('#jsi-button'); this.$msgDom = $('<li>'); //各自登録時に出たコードに書き換え。「chatRoom」は任意でok。複数の部屋を作りたい場合はここを動的にする。 this.chatDataStore = new MilkCocoa('eggivck94jn.mlkcca.com').dataStore('chatRoom'); }, bindEvent:function(){ var self = this; this.$button.on('click',function(){ self.sendMsg(); }); //pushを監視 this.chatDataStore.on('push',function(data){ self.addText(data.value.user); self.addText(data.value.message); }); }, //ユーザー、メッセージ送信 sendMsg:function(){ if (this.$textArea.val() == ''){ return } var self = this; var name = this.$name.val(); var text = this.$textArea.val(); self.chatDataStore.push({user:name, message:text},function(data){ self.$textArea.val(''); }); }, //受け取り後の処理 addText:function(json){ var msgDom = $('<li>'); msgDom.html(json); this.$board.append(msgDom[0]); } } $(function(){ BAAS.cocoa.init(); });
退会済みユーザー👍を押しています

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

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

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

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

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

gouf

2019/10/11 21:19

この質問に登場する言語は JavaScript のみですか? もしそうであれば、Java, JavaScript と2言語あるので、混乱を避けるため省略せず JavaScript と表記するようにしてください
m.ts10806

2019/10/11 21:26

Javaはどこでしょうか。 JavaScriptしかないようですが。
m.ts10806

2019/10/11 21:27

というか作業依頼ですね。
退会済みユーザー

退会済みユーザー

2019/10/11 23:11

日本語がおかしいから釣りかと。
hino00sns

2019/10/12 04:54

日本語おかしくてすみません。 作業依頼はしていないですよー 参考になるソースコードやサンプルがあれば目的を達成できるのでソースコードを求めています。 HTMLしか触れてないとも言いましたし、Javaの経験もありません、なので詳しいことがわからない私からしたら目の前が霧になっててどうしたらいいかわからない、その上で頼んでいるんですが teratailで質問した結果が、罵倒されてたのでびっくりしました。 変なことを言ってしまったのならごめんなさい。 知識や解決作を共有し合う場所だと勘違いしてました。 出直してきます。
hino00sns

2019/10/12 05:21

JavaScript=JS 把握です。 混乱を招き申し訳ございません、 できればもう少しやさしい指導を望みますww めちゃくちゃ心が痛いですwww 私が悪いんですが、もう少しだけでいいんで加減して欲しいです JavaやJavaScriptの違いもわからなかった初心者です。 大目に見てくれると嬉しいですw ホントにごめんなさいでした。 ちなみに JavaScriptをJavaと間違った書き込みをしたわけですが この場合質問欄に記載した文章を訂正修正するべきでしょうか。 教えてください。 yukke_さんに加えていいますw これは人狼ゲームではありませんw なので私を釣らないでください!わたしは白です! メタ考察になるんですが初心者なので黒ではないです¥¥¥¥ そういう私を黒塗りしたyukke_さんははるかに黒いです! てことなんですが、 たのしく情報共有したいと思ってます。 大変ご迷惑をおかけしておりますが、お付き合いください。 申し訳ございませんでした。
退会済みユーザー

退会済みユーザー

2019/10/12 11:06

誰が罵倒しているのでしょうか?
kyoya0819

2019/10/12 12:25

怒ってません。 > 作業依頼はしていないですよー あなたが作業依頼をしているかなんてどうでもいいです。作業依頼と受け取れることが問題です。 > 大目に見てくれると嬉しいですw なにが大目に見て欲しいだよ それ以前に質問修正する努力くらいしろよ > HTMLしか触れてないとも言いましたし、Javaの経験もありません、なので詳しいことがわからない私からしたら目の前が霧になっててどうしたらいいかわからない、その上で頼んでいるんですが > teratailで質問した結果が、罵倒されてたのでびっくりしました。 当たり前、調べてわかることを調べずに聞いたんだから
hino00sns

2019/10/12 20:01

だから作業依頼をしたつもりはないですよごめんなさいねーって解釈はできんのかasuchi0819さんの頭はwww
hino00sns

2019/10/12 20:47 編集

調べて分かることなら聞いてませんよ 調べても出なかったから 聞いてるんですが。。。 ちなみに調べてわかる情報だからその質問者への回答を蔑ろにするんですか? そんなあなたに回答権はないと思いますw 調べてわかる情報を持っているなら そのサイトのURLなどを貼って提示して上げるのが回答者でしょうにw めちゃくちゃですよasuchi0819さん。。。w
hino00sns

2019/10/12 20:15

ちなみに回答者に暴言など一切吐いてませんからねw ちょっとJavaとJSの言い間違いでこんなに叩かれるんですよw 過剰すぎるでしょってところw 違いますか?皆さん。 正直に思ったことを言うと、 「一種の宗教団体に見て取れた。」 いや知識を持たない駆け出しの人に対して ほんの些細失言でここまで大勢の人に叩かれるのですから、 それは怖いですよw ぞっとします、ふつうにやっばい、
hino00sns

2019/10/12 20:22

ちなみに言いましたよね、 >たのしく情報共有したいと思ってます。とw はい、ここで一番激怒して不満げに振舞ってなおかつことを荒立ててるのは誰ですか。 asuchi0819さん あなたです。
guest

回答5

0

まずは

  • JavaとJavaScriptの違い
  • teratailの正しい使い方
  • 一般常識

について学んでください。

ちなみにJavaScriptは略すならJavaではなくJSです。

投稿2019/10/12 00:17

編集2019/10/13 00:28
kyoya0819

総合スコア10429

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

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

hermit19901127

2019/10/12 01:30

この意見に同意です。JavaとJavaScriptを同等レベルと考えてる場合、その認識が致命的です。 問題解決以前に、質問主が触れてる言語が「Java」および「JavaScript」である以上、これを混合して考えてるのは危険だと思います。
hino00sns

2019/10/12 05:02

あ、はい・・・なんかひどいことをしてしまいましたごめんなさい。 JSですね、理解ですありがとうございます。
kyoya0819

2019/10/12 05:15

JavaScript -> WEBでよく使われる言語 Java -> ソフトウェアアプリケーションで使われる言語 と覚えてください。 両者は製作者も全く違いますし生い立ちも違います。
hino00sns

2019/10/12 05:24

asuchi0819さんありがとう! 以後気をつけます!
kyoya0819

2019/10/13 00:28

追記しました。
kyoya0819

2019/10/13 00:31

あと、Qiita見ればわかることですがMilkCocoaはサービス終了が確定していますからFBへの移行をお勧めします。
kyoya0819

2019/10/13 01:07

これ以上はアクションもらっても基本返答致しませんので悪しからず
guest

0

本記事で記載しているMilkcocoaは2019年10月30日にサービスが終了するので、firebaseを使用することをお勧めします。
...参考にしたページくらい書きましょうね

肝となる技術を提供しているMilkcocoaの公式サイトは見ましたか?
client側には最終チャット時刻をlocalstoregeに残しておいて
history()で過去のやり取りを再取得ってところでしょうか。

...

ソースコードでの提示を深く望みます!

あと、なぜソースを求むのでしょうか?逆質問になって申し訳ないですが知りたいです。

投稿2019/10/12 00:34

編集2019/10/12 04:31
oikashinoa

総合スコア2826

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

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

hino00sns

2019/10/12 05:11

逆質問ぜんぜんいいですよ!w むしろ望みます! teratailの質問サイトを使うのは始めてでホントに間違った使い方してたらごめんなさいww 参考になるソースコードやサンプルがあればそのデーターを元に即解決ができるからって言ったら怒られちゃいますかね。。。甘えすぎだったらごめんなさい。 もっと具体的に説明しますね・・・ JS(JavaとJavaScrip)の使い方がわからない私ですが サンプルでもらったコードを元に どこにDATファイルが組み込まれてるか、 どのような形式で書かれてるか、 どこのファイルやソースコードに繋がってるかを研究したいがためにコードを求めています。 現状どのような形式でDatファイルがJSに組み込まれているかわかりませんし、 調べてもそのような情報とはちがう情報が出てきて私自身混乱しています。 なので早期解決を望むべく質問したほうが早いなと、投稿させていただきました。 (得た情報サイト下記に記す) https://eng-entrance.com/java-file-output http://ecogis.sfc.keio.ac.jp/online/java/2002/9th/file.htm https://www.sejuku.net/blog/24744
oikashinoa

2019/10/12 06:47

・まずは最初の質問部分などで用語を間違えている部分を直しましょう。 不要なツッコミを避けるため。後日別の人(あなたも含みます)が検索した時にノイズにならないように。 ・サーバーとクライアントの(役割の)違いを確認しましょう チャットのデータはどこに有るか分かります? ・仕組みを理解して Perlで実現した方法がJava(Script)といっしょとは限りません。 使おうとしている仕組みを理解して下さい milkcocoa 公式ドキュメントは必読 ・それは解決したいことか?別のやり方はないか? > リロードしたり閉じたりしてまたチャットページに入るとログが残ってない チャット終了直前のデータが残せて、次回表示できてそれ美味しいです? 個人的意見ですが、離席後のチャット内容全部がわかった方が嬉しいですね。 ・急がば廻れ サンプルソースもらって動いたとしても、直ぐ行き詰まるでしょう。 なぜ?ロジックを理解してないので自分用に修正できないから。 質問するなら考え方を理解してソースは自分で組むようにしましょう。
hino00sns

2019/10/12 08:53

・サーバーとクライアントの(役割の)違いを確認しましょう チャットのデータはどこに有るか分かります? >もちろんわかりますよー Perlでのチャットのデータはdatファイルにありますよー、 JSではどこにあるんですか? jsにおいてdatを使うか使わないかという質問くらい、回答できるのではないでしょうか。
oikashinoa

2019/10/12 11:15 編集

見ず知らずの人に無償で聞く態度じゃないのでこれ以上回答は控えますね。 ”こんな簡単な問題分かるだろ。俺は分からんから教えろ”ってかんじなんですかね?
kyoya0819

2019/10/12 12:22

横から失礼します。 まだ自分だけならいいですが他の回答者さんにも同様の態度なので流石に言わせていただきます。 > teratailの質問サイトを使うのは始めてでホントに間違った使い方してたらごめんなさいww 間違ってるよ。何が笑えるんだよ、
hino00sns

2019/10/12 19:37

その見ず知らずの人たちに頭を下げて丁寧に頼んだ結果モノすっごく叩かれたのですが、 それでいてどうして態度を改めないでいられるのでしょうかwwww
hino00sns

2019/10/12 19:47

しかも質問にたいして回答になっていないものばかり、 当たり前なことを質問しに来たわけではないのですがw 大丈夫かしら? 無償で聞かれる態度がやなら聞かなければいいし回答もしなくても良いのでは? では金を払えば暴言を吐きまくって罵倒していいんですか? 言ってることおかしいですよw そもそも態度でことの有無を決めたいのならメンタリストにでもなってくださいw 知恵袋でも全然できますから「知恵袋」てぐぐってくださいw
hino00sns

2019/10/12 19:49

asuchi0819さんに関しては態度を荒立てた覚えはないしなんなら「ありがとうございます」ってお礼もしたはずですがなぜか横槍・・・どうしたの?
hino00sns

2019/10/12 19:53

asuchi0819さん・・・ちなみにどのようにして間違っているのか具体的に書き込んでくださいな、 私は言われたとおり 参考にしたサイトのURLを貼れといわれ貼りました。 JavaとJavascriptの区別ができてないので把握して書き直せという指示に従って丁寧に謝罪して訂正した。 そのあとにソースコードの提示を要求することは作業依頼をしていることだといわれ それも訂正して任意でどうぞと次の質問にも書きましたが? ほかになにを訂正すれば良いのでしょうか?
hino00sns

2019/10/12 20:44 編集

これら指摘されたことに関して丁寧に謝って訂正したのにも関わらず 回答の内容は杜撰で安直、 唯一まともな回答を残したのはasuchi0819さんあなたと、hermit19901127さんくらいですよw なのにもかかわらずasuchi0819さんに関して不当な回答を残す回答者への俺の個人的なコメントに激怒してなんか荒らしてるし 大丈夫なの?と言わざる追えないw 笑いますよ、ヘイトを向けてもいないひとからめっちゃ痛い言葉が飛んでくるんですからwww 何これってなりますw
guest

0

ベストアンサー

新しく質問されてますが、
内容が変わらないので、こちらで。

ブラウザによって、仕様が確定していないなど、まだまだ安定しておりませんが、
** Indexed Database API**というものを使う方法があります。
これはブラウザ上でデータベースを使うというもので、当然リロードしても値などが保持されます。
ただ、前述通りまだ仕様が確定しきっていない未来の技術とも言えますので、注意が必要です。

また、クッキーにチャット履歴などを全部を文字列化したものを保持しとくのも手でしょう。

両者とも、やり方は自身でお調べください。

また、それ以外であれば、
他の回答者さんが仰るとおり、
サーバーサイドテクノロジーを使ったり、
asahina1979さんの仰るとおり、File API使ったりなど、
とかくリロードしても情報がクリアされないようにする必要があるでしょう。

さて、JavaScriptでdatファイルを直接読み込みは、サーバー上ではできるかもしれませんが、
ローカルではできない上、また書き込みに関しては、クライアントサイドではできないので、
(File APIなら可能かも)なんにせよ、上記の技術などで、情報保持する必要があります。

※いずれにせよ、そのやり方教えてくれ、だと丸投げの作業依頼です。

投稿2019/10/12 15:35

編集2019/10/12 15:47
miyabi_takatsuk

総合スコア9528

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

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

hino00sns

2019/10/12 22:11 編集

あーなるほどww ああマジでありがとうです!!w やっと晴れたw 申し訳ないww >※いずれにせよ、そのやり方教えてくれ、だと丸投げの作業依頼です。 重々承知しました。以後気お付けます! 本当にありがとうw!!
guest

0

質問に提示しているコードだと

  1. MilkCocoaのデータストアを取得
  2. ボタンがクリックされたらデータストアにデータをpush
  3. pushされるタイミングで、htmlにpushするデータを追記

しか処理がなく、ページを表示した際にpush済データを取得する処理がありません。

最初にMilkCocoaのデータストアを取得した際に
strean() history() 等のメソッドを使って、push済データを取得し、htmlに追記すれば良いかと思います。

メソッドに関してはAPIリファレンスのページに詳しく書かれていました。

APIリファレンス(JavaScript, NodeJS)
https://mlkcca.com/document/api-js.html

「JSでログを残す方法」については提示のコードで既に出来ていて、ログを取得していないだけかと思います。
「datを読み込み書き込み保存」するのであれば、JavaScriptのみでは出来ないので、 perl等のサーバサイド言語を組み合わせて動かす必要があります。

投稿2019/10/12 13:41

Eggpan

総合スコア2665

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

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

hino00sns

2019/10/12 22:12

Eggpanさんーーw ええ??なにw 「JSでログを残す方法」については提示のコードで既にできてるんですかww Eggpanさん! あなたも俺の中ではベストアンサーですよ! 助かりましたw ほんとに分かりやすく解説していただいてまじで 情報提供ありがとうございます!w 貴方を待ってました!! >「datを読み込み書き込み保存」するのであれば、JavaScriptのみでは出来ない 把握しました!!!
guest

0

使えるブラウザが限られてるがFIle API

使えてもブラウザでもデフォルトでは制約してる場合もあるのでそこらへんはプログラムに関係はないので割愛(答える気もない)

投稿2019/10/12 09:17

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

hino00sns

2019/10/12 09:48

ありがとう、でも 答える気がないなら答えなくてもいいのよと言っとく
kyoya0819

2019/10/12 12:05

横から失礼 > ありがとう、でも > 答える気がないなら答えなくてもいいのよと言っとく いや何様? ここにいるのは第三者です。互いに顔を知りません。その人に対して聞く態度ではない気がします。
退会済みユーザー

退会済みユーザー

2019/10/12 15:04

ブラウザの制約の解除方法はプログラムに関係ないから 自己責任で理解して解除しないといけない項目
hino00sns

2019/10/12 19:35

?? うんもちろん顔を知ってたらこんな態度にならないでしょうねw その第三者から(答える気もない)と言われたので、 なら答えなくていいんだよと 正論をいったまでだが。 何様もないとおもいますよ?w 何が気に食わないんでしょうかw
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問