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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

670閲覧

初心者なのですが、このプログラムにコメントしてさらに詳しく動きを説明してほしいです。理解したいです。

masoya

総合スコア4

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2022/01/17 18:14

編集2022/01/17 18:54

js

1let t_past = 0; // 前回の受信時刻 2 3document.addEventListener('DOMContentLoaded', function () { 4 // 各所にイベントリスナーを設置する.これは,HTML読み込み完了時に動作する. 5 6 class webConnector extends XMLHttpRequest { 7 constructor() { 8 super(); 9 this.addEventListener('loadstart', function () { 10 window.alert(this.url + "と通信を開始しました"); 11 }, false); //通信開始時の処理 12 this.addEventListener('load', function () { 13 let data = this.response; 14 15 // 受信時刻を更新 16 let d = new Date(); 17 let ut = d.getTime(); 18 t_past = ut; 19 20 show(data); 21 }, false); //通信成功時処理 22 this.addEventListener('error', function () { 23 window.alert(this.url + "との通信に失敗しました"); 24 }, false); //通信失敗時処理 25 } 26 } 27 let xhr = new webConnector(); 28 29 document.getElementById('button').addEventListener('click', function () { 30 let name = document.getElementById('name').value; 31 let message = document.getElementById('message').value; 32 33 // 変更 送信時刻も送る 34 let d = new Date(); 35 let ut = d.getTime(); 36 let url = "./cgi-bin/serverSide_kadai7.py?" + "name=" + name + "&message=" + message + "&ut=" + ut + "&t_past=" + t_past; 37 38 xhr.open("GET", url); 39 xhr.responseType = 'json'; 40 xhr.url = url; 41 xhr.send(null); 42 }, false); 43 44}, false); 45 46 47function show(data) { 48 49 let result = document.getElementById('result'); 50 51 if (data === null) { 52 result.textContent = 'メッセージはありません'; 53 } else { 54 let text = ""; 55 for(let dictionary of data) { 56 text += "<ul><li>" + dictionary['name'] + "<ul><li>「" + dictionary['message'] + "」</li></ul></li></ul>"; 57 } 58 result.innerHTML += text; 59 } 60} 61

HTML

1<!DOCTYPE html> 2<html lang="ja"> 3 4<head> 5 <meta charset="utf-8" /> 6 <title>自作APIからメッセージを得るやーつ</title> 7</head> 8 9<body> 10 11 <input id="name" type="text" size="30" value="名前" /> 12 <br /> 13 <input id="message" type="text" size="30" value="メッセージ" /> 14 <input id="button" type="button" value="送信" /> 15 <div id="result"></div> 16 <hr /> 17 18 <script type="text/javascript" src="serverSide_kadai7.js"></script> 19</body> 20 21</html>

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

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

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

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

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

Zuishin

2022/01/17 22:53

自分でやってみてください。間違っているところは直します。
int32_t

2022/01/18 00:04

どれぐらい詳しく説明すべきかさっぱりわからないため、たいへん回答しにくい作業依頼になってます。 どこがわからないのか絞って、どこまでわかるか質問者さんが説明してください。
yambejp

2022/01/18 01:21 編集

XHRはいまさら感があるので、これを解説するより、挙動を提示してリファクタリングした方が良いと思います。 またalertはやめたほうがいいと思います。 サーバー側の仕様もある程度提示されたほうが良いと思います (送ったnameとmessageがjsonとしてそのまま返ってくるだけ?)
guest

回答1

0

ベストアンサー

どこまで分かってるかが分からないので説明がむずかしいです
kadai7 頑張ってください

投稿2022/01/19 10:33

sum6

総合スコア232

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問