Ajax实现页面无刷新留言效果

在百度贴吧,以及一些论坛中,当你回复或者评论完毕之后,从来没有见过页面重新刷新加载的效果,那么这个究竟是怎么做成的呢,也就是利用Ajax技术,页面无刷新效果,废话不多说,直接上代码。

Posted in Javascript onMarch 24, 2021

实现效果

Ajax实现页面无刷新留言效果

html部分:

<div class="container">
 <h1 class="display-1">留言板</h1>
 <hr>
 <div id="loading">正在拼命加载数据.....</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部分:

//———————————实现页面初始化数据 Start———————————
<script>
 //初始化,加载数据
 loadData();
 //获取已经存在的数据,加载到页面中
 /* 方式:GET 
 方法名: /getMsg
 参数:无
 返回: 所有留言[JSON] */
 function loadData() {
 //1.新建xhr 对象
 var xhr = new XMLHttpRequest();
 //2.设置请求参数和url
 xhr.open('GET', '/getMsg');
 //3.调用send方法 发送请求
 xhr.send();
 //4.接收一个参数 返回服务器的响应结构
 xhr.onload = function () {
 //JSON转换成数组
 var arr = JSON.parse(this.response);
 //开始遍历数组
 var str = '';
 arr.forEach(function (ele) {
  //将循环遍历出来的拼接到到一个字符串中,
  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>`;
 });
 //获取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>
 //————————————实现页面初始化数据 end————————
 
 //————————实现页面添加留言功能 Start——————————
 <script>
 //添加一个发表留言的功能
 /* 
 方式:POST
 方法名:/addMsg 
 参数:name[string]
  content:[string]
 返回值:添加成功:true 
  添加失败:false
 */
 
 //新增的方法
 //获取提交按钮
 var btn_send = document.getElementById("btn_send");
 btn_send.onclick = function () {
 //1.新建xhr 对象
 var xhr = new XMLHttpRequest();
 //2.设置请求参数和url
 xhr.open('POST', '/addMsg');
 //3.设置请求头
 xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
 //获取称呼内容
 var txt_name = document.getElementById("txt_name");
 //获取留言内容
 var txt_content = document.getElementById("txt_content");
 //4.调用send方法 发送请求
 xhr.send('name=' + txt_name.value + '&content= ' + txt_content.value);
 //5.接收一个参数 返回服务器的响应结构
 xhr.onload = function () {
 if (this.response === "true") {
  //添加完毕之后,重新加载
  loadData();
  //添加完毕之后清空输入栏文本
  txt_name.value = txt_content.value = '';
 } else {
  alert("添加失败");
 }
 }
 }
 </script>
 //——————————实现页面添加留言功能 end————————————

 

Javascript 相关文章推荐
js类 from qq
Nov 13 Javascript
javascript转换字符串为dom对象(字符串动态创建dom)
May 10 Javascript
基于jquery+thickbox仿校内登录注册框
Jun 07 Javascript
JavaScript 放大镜 移动镜片效果代码
May 09 Javascript
js函数获取html中className所在的内容并去除标签
Sep 08 Javascript
原生js获取宽高与jquery获取宽高的方法关系对比
Apr 04 Javascript
js实现显示当前状态的导航效果代码
Aug 28 Javascript
jQuery zTree 异步加载添加子节点重复问题
Nov 29 jQuery
基于rollup的组件库打包体积优化小结
Jun 18 Javascript
js中的this的指向问题详解
Aug 29 Javascript
layui 富文本赋值,取值,取纯文本值的实例
Sep 18 Javascript
JS实现简单日历特效
Jan 03 Javascript
利用promise及参数解构封装ajax请求的方法
AJAX检测用户名是否存在的方法
Mar 24 #Javascript
js正则匹配markdown里的图片标签的实现
浅谈react路由传参的几种方式
Mar 23 #Javascript
一百多行代码实现react拖拽hooks
node中使用shell脚本的方法步骤
详解如何解决使用JSON.stringify时遇到的循环引用问题
You might like
那些年一起学习的PHP(二)
2012/03/21 PHP
PHP设计模式之工厂模式与单例模式
2016/09/28 PHP
php array_udiff_assoc 计算两个数组的差集实例
2016/11/12 PHP
基于php双引号中访问数组元素报错的解决方法
2018/02/01 PHP
PHP标准库 (SPL)――Countable用法示例
2020/06/05 PHP
获取URL地址中的文件名和参数的javascript代码
2009/09/02 Javascript
javascript五图轮播切换实用版
2012/08/17 Javascript
Extjs中TabPane如何嵌套在其他网页中实现思路及代码
2013/01/27 Javascript
jquery delay()介绍及使用指南
2014/09/02 Javascript
解决jquery版本冲突的有效方法
2014/09/02 Javascript
jQuery实现Email邮箱地址自动补全功能代码
2015/11/03 Javascript
JS仿hao123导航页面图片轮播效果
2016/09/01 Javascript
Bootstrap优化站点资源、响应式图片、传送带使用详解3
2016/10/14 Javascript
微信小程序 wxapp内容组件 progress详细介绍
2016/10/31 Javascript
根据输入邮箱号跳转到相应登录地址的解决方法
2016/12/13 Javascript
使用contextMenu插件实现Bootstrap table弹出右键菜单
2017/02/20 Javascript
ReactNative实现图片上传功能的示例代码
2017/07/11 Javascript
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
vue组件传值的实现方式小结【三种方式】
2020/02/05 Javascript
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
2021/01/22 Vue.js
[56:21]LGD vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python操作摄像头截图实现远程监控的例子
2014/03/25 Python
使用简单工厂模式来进行Python的设计模式编程
2016/03/01 Python
Django压缩静态文件的实现方法详析
2018/08/26 Python
Python txt文件加入字典并查询的方法
2019/01/15 Python
python 判断文件还是文件夹的简单实例
2019/06/10 Python
Python爬虫之Selenium实现窗口截图
2020/12/04 Python
吃透移动端 Html5 响应式布局
2019/12/16 HTML / CSS
丝芙兰美国官网:SEPHORA美国
2016/08/03 全球购物
英文简历中的自荐信范文
2013/12/14 职场文书
2014年小学元旦活动方案
2014/02/12 职场文书
文明礼仪伴我行演讲稿
2014/05/12 职场文书
刑事辩护授权委托书范本
2014/10/17 职场文书
pytorch 如何使用float64训练
2021/05/24 Python
OpenCV-Python实现图像平滑处理操作
2021/06/08 Python
JavaScript 反射学习技巧
2021/10/16 Javascript