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 相关文章推荐
原来Jquery.load的方法可以一直load下去
Mar 28 Javascript
jQuery 事件的命名空间简单了解
Nov 22 Javascript
jquery fancybox ie6不显示关闭按钮的解决办法
Dec 25 Javascript
教你如何使用node.js制作代理服务器
Nov 26 Javascript
js实现表单Radio切换效果的方法
Aug 17 Javascript
js实现页面跳转的五种方法推荐
Mar 10 Javascript
使用JQuery选择HTML遍历函数的方法
Sep 17 Javascript
JS时间控制实现动态效果的实例讲解
Jul 31 Javascript
JS实现的简单表单验证功能完整实例
Oct 14 Javascript
如何理解Vue的v-model指令的使用方法
Jul 19 Javascript
使用Easyui实现查询条件的后端传递并自动刷新表格的两种方法
Sep 09 Javascript
node.js如何自定义实现一个EventEmitter
Jul 16 Javascript
利用promise及参数解构封装ajax请求的方法
AJAX检测用户名是否存在的方法
Mar 24 #Javascript
js正则匹配markdown里的图片标签的实现
浅谈react路由传参的几种方式
Mar 23 #Javascript
一百多行代码实现react拖拽hooks
node中使用shell脚本的方法步骤
详解如何解决使用JSON.stringify时遇到的循环引用问题
You might like
全国中波电台频率表
2020/03/11 无线电
ThinkPHP无限级分类原理实现留言与回复功能实例
2014/10/31 PHP
分享一则PHP定义函数代码
2015/02/26 PHP
CodeIgniter自定义控制器MY_Controller用法分析
2016/01/20 PHP
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
菜鸟javascript基础资料整理2
2010/12/06 Javascript
通过Javascript读取本地Excel文件内容的代码示例
2014/04/08 Javascript
JQuery给元素绑定click事件多次执行的解决方法
2014/05/29 Javascript
jQuery中的read和JavaScript中的onload函数的区别
2014/08/27 Javascript
微信小程序 加载 app-service.js 错误解决方法
2016/10/12 Javascript
AngularJS解决ng界面长表达式(ui-set)的方法分析
2016/11/07 Javascript
移动端web滚动分页的实现方法
2017/05/05 Javascript
web.js.字符串与正则表达式操作
2017/05/13 Javascript
微信小程序中遇到的iOS兼容性问题小结
2018/11/14 Javascript
JS/HTML5游戏常用算法之路径搜索算法 随机迷宫算法详解【普里姆算法】
2018/12/13 Javascript
Vue项目安装插件并保存
2019/01/28 Javascript
vue实现多条件和模糊搜索功能
2019/05/28 Javascript
[01:12:08]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.24
2019/09/10 DOTA
python sys模块sys.path使用方法示例
2013/12/04 Python
从零学Python之入门(二)基本数据类型
2014/05/25 Python
Python实现的矩阵类实例
2017/08/22 Python
python+django加载静态网页模板解析
2017/12/12 Python
python xlsxwriter创建excel图表的方法
2018/06/11 Python
python实现时间o(1)的最小栈的实例代码
2018/07/23 Python
使用Python获取并处理IP的类型及格式方法
2018/11/01 Python
parser.add_argument中的action使用
2020/04/20 Python
python 抓取知乎指定回答下视频的方法
2020/07/09 Python
HTML5公共页面提取作为公用代码的方法
2020/06/30 HTML / CSS
C有"按引用传递"吗
2016/09/06 面试题
小学感恩节活动策划方案
2014/10/06 职场文书
新员工考核评语
2014/12/31 职场文书
英语辞职信范文
2015/02/28 职场文书
何玥事迹观后感
2015/06/16 职场文书
庭外和解协议书
2016/03/23 职场文书
详细介绍python类及类的用法
2021/05/31 Python
nginx配置限速限流基于内置模块
2022/05/02 Servers