溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用Ajax怎么實現(xiàn)一個頁面無刷新留言效果

發(fā)布時間:2020-12-21 15:15:20 來源:億速云 閱讀:180 作者:Leah 欄目:開發(fā)技術

本篇文章為大家展示了利用Ajax怎么實現(xiàn)一個頁面無刷新留言效果,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

html部分:

 <div class="container">
 <h2 class="display-1">留言板</h2>
 <hr>
 <div id="loading">正在拼命加載數(shù)據(jù).....</div>
 <ul id="messages" class="list-unstyled">

 </ul>
 <hr>
 <div class="form-group">
  <label for="txt_name">稱呼:</label>
  <input class="form-control" id="txt_name" name="xxx" type="text">
 </div>
 <div class="form-group">
  <label for="txt_content">留言:</label>
  <textarea class="form-control" id="txt_content" cols="80" rows="10"></textarea>
 </div>
 <button type="button" id="btn_send" class="btn btn-primary">提交</button>
</div>

css部分:

css部分引用了bootstrap.css

js部分:

//———————————實現(xiàn)頁面初始化數(shù)據(jù) Start———————————
<script>
 //初始化,加載數(shù)據(jù)
 loadData();
 //獲取已經(jīng)存在的數(shù)據(jù),加載到頁面中
 /* 方式:GET 
 方法名: /getMsg
 參數(shù):無
 返回: 所有留言[JSON] */
 function loadData() {
  //1.新建xhr 對象
  var xhr = new XMLHttpRequest();
  //2.設置請求參數(shù)和url
  xhr.open('GET', '/getMsg');
  //3.調(diào)用send方法 發(fā)送請求
  xhr.send();
  //4.接收一個參數(shù) 返回服務器的響應結構
  xhr.onload = function () {
  //JSON轉(zhuǎn)換成數(shù)組
  var arr = JSON.parse(this.response);
  //開始遍歷數(shù)組
  var str = '';
  arr.forEach(function (ele) {
   //將循環(huán)遍歷出來的拼接到到一個字符串中,
   str += `<li class="media">
      <img class="mr-3" src="avatar.png" alt=${ele.name}>
      <div class="media-body">
       <h5>${ele.name}</h5>
       <p>${ele.content}</p>
      </div>
     </li>`;
  });
  //獲取ul 將拼接的li 放置到ul 中
  var mes = document.getElementById('messages');
  mes.innerHTML = str;
  //清空默認顯示 拼命加載中
  if (mes.childNodes.length != 0) {
   //獲取拼命加載中id
   var loadMes = document.getElementById('loading');
   loadMes.innerHTML = "";
  }
  }
 }
 </script>
 //————————————實現(xiàn)頁面初始化數(shù)據(jù) end————————

 //————————實現(xiàn)頁面添加留言功能 Start——————————
 <script>
 //添加一個發(fā)表留言的功能
 /* 
 方式:POST
 方法名:/addMsg 
 參數(shù):name[string]
   content:[string]
 返回值:添加成功:true 
   添加失?。篺alse
 */

 //新增的方法
 //獲取提交按鈕
 var btn_send = document.getElementById("btn_send");
 btn_send.onclick = function () {
  //1.新建xhr 對象
  var xhr = new XMLHttpRequest();
  //2.設置請求參數(shù)和url
  xhr.open('POST', '/addMsg');
  //3.設置請求頭
  xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  //獲取稱呼內(nèi)容
  var txt_name = document.getElementById("txt_name");
  //獲取留言內(nèi)容
  var txt_content = document.getElementById("txt_content");
  //4.調(diào)用send方法 發(fā)送請求
  xhr.send('name=' + txt_name.value + '&content= ' + txt_content.value);
  //5.接收一個參數(shù) 返回服務器的響應結構
  xhr.onload = function () {
  if (this.response === "true") {
   //添加完畢之后,重新加載
   loadData();
   //添加完畢之后清空輸入欄文本
   txt_name.value = txt_content.value = '';
  } else {
   alert("添加失敗");
  }
  }
 }
 </script>
 //——————————實現(xiàn)頁面添加留言功能 end————————————

上述內(nèi)容就是利用Ajax怎么實現(xiàn)一個頁面無刷新留言效果,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI