メッセージ効果を更新することなくページを実現するAjax
2022-01-15 12:39:30
メッセージの効果を更新せずにページを実現するAjax
効果の実現
効果を発揮します
htmlセクションです。
<div class="container">
<h1 class="display-1">message board</h1>
<hr>
<div id="loading">Trying desperately to load data ..... </div>
<ul id="messages" class="list-unstyled">
</ul>
<hr>
<div class="form-group">
<label for="txt_name">Calling: </label>
<input class="form-control" id="txt_name" name="xxx" type="text">
</div>
<div class="form-group">
<label for="txt_content">Message:</label>
<textarea class="form-control" id="txt_content" cols="80" rows="10"></textarea>
</div>
<button type="button" id="btn_send" class="btn btn-primary">submit</button>
</div>
cssの部分です。
cssセクションは、bootstrap.cssを参照しています。
jsの部分です。
//--------- --implementation of page initialization data Start------ -----
<script>
//Initialize, load data
loadData();
//Get the data that already exists and load it into the page
/* Method: GET
Method name: /getMsg
Parameters: None
Return: all messages [JSON] */
function loadData() {
// 1. Create a new xhr object
var xhr = new XMLHttpRequest();
//2. Set request parameters and url
xhr.open('GET', '/getMsg');
//3. Call send method to send the request
xhr.send();
//4. Take a parameter and return the response structure of the server
xhr.onload = function () {
//convert JSON to an array
var arr = JSON.parse(this.response);
//Start traversing the array
var str = '';
arr.forEach(function (ele) {
//splice the loop iterations into a string that
str += `<li class="media">
<img class="mr-3" src="avatar.png" alt=${ele.name}>
<div class="media-body">
<h4>${ele.name}</h4>
<p>${ele.content}</p>
</div>
</li>`;
});
//get the ul Place the spliced li in the ul
var mes = document.getElementById('messages');
mes.innerHTML = str;
//clear the default display of the spell being loaded
if (mes.childNodes.length ! = 0) {
//Get the loading id
var loadMes = document.getElementById('loading');
loadMes.innerHTML = "";
}
}
}
</script>
//--------- --- Implement page initialization data end------ --
//-------- implements the function of adding a message to the page Start ----------
<script>
//add a function to post a message
/*
Method: POST
Method name: /addMsg
Parameters: name[string]
content:[string]
Return value: add success: true
Failed to add: false
*/
//Added method
//Get the submit button
var btn_send = document.getElementById("btn_send");
btn_send.onclick = function () {
//1. Create new xhr object
var xhr = new XMLHttpRequest();
//2. Set request parameters and url
xhr.open('POST', '/addMsg');
//3. Set the request header
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
//Get the content of the address
var txt_name = document.getElementById("txt_name");
//Get the content of the message
var txt_content = document.getElementById("txt_content");
//4. Call send method to send the request
xhr.send('name=' + txt_name.value + '&content= ' + txt_content.value);
//5. Take a parameter to return the response structure of the server
xhr.onload = function () {
if (this.response === "true") {
// After adding, reload
loadData();
//clear the input field text after adding
txt_name.value = txt_content.value = '';
} else {
alert("Failed to add");
}
}
}
</script>
//--------- -Implementation of the page add message function end-------- ----
そんなところでしょうか。質問やいいアイデアがあれば、どなたでもコメントください。
この記事が参考になれば幸いです。そして、スクリプト・ハウスを応援していただければ幸いです。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
AJAXは、省、市、郡レベルの連携効果を実現するために
-
Ajaxの初期実装(vscode+node.js+expressフレームワークを使用)。
-
プロミスとパラメータを使用してajaxリクエストをカプセル化解除する方法
-
ユーザー名が占有されているかどうかを検出するためにAjaxを使用する完全な例
-
Ajaxファイルアップロード機能(Spring MVC)
-
AJAXによるページ更新効果の指定部分の実現
-
Ajaxによる3段構えの連動効果を実現
-
ajaxによるデータへの非同期アクセスに関する質問
-
ajaxによるチェックフォーム方式での投稿
-
ajaxを使ったSpring Bootベースの画像アップロード