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 相关文章推荐
ArrayList类(增强版)
Apr 04 Javascript
js实现点击按钮后给Div图层设置随机背景颜色的方法
May 06 Javascript
使用Node.js实现HTTP 206内容分片的教程
Jun 23 Javascript
jQuery实现平滑滚动的标签分栏切换效果
Aug 28 Javascript
基于JavaScript实现的顺序查找算法示例
Apr 14 Javascript
Angularjs 实现动态添加控件功能
May 25 Javascript
详解关于vue-area-linkage走过的坑
Jun 27 Javascript
jQuery+PHP实现上传裁剪图片
Jun 29 jQuery
微信小程序可滑动周日历组件使用详解
Oct 21 Javascript
JS实现秒杀倒计时特效
Jan 02 Javascript
JS this关键字在ajax中使用出现问题解决方案
Jul 17 Javascript
JavaScript使用setTimeout实现倒计时效果
Feb 19 Javascript
利用promise及参数解构封装ajax请求的方法
AJAX检测用户名是否存在的方法
Mar 24 #Javascript
js正则匹配markdown里的图片标签的实现
浅谈react路由传参的几种方式
Mar 23 #Javascript
一百多行代码实现react拖拽hooks
node中使用shell脚本的方法步骤
详解如何解决使用JSON.stringify时遇到的循环引用问题
You might like
使用 MySQL 开始 PHP 会话
2006/12/21 PHP
浅析PHP页面局部刷新功能的实现小结
2013/06/21 PHP
php使用百度ping服务代码实例
2014/06/19 PHP
php使用json_decode后数字对象转换成了科学计数法的解决方法
2017/02/20 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
2018/10/14 PHP
给网站上的广告“加速”显示的方法
2007/04/08 Javascript
浅析JavaScript中的CSS属性及命名规范
2013/11/28 Javascript
JavaScript利用正则表达式去除日期中的-
2014/06/09 Javascript
推荐 21 款优秀的高性能 Node.js 开发框架
2014/08/18 Javascript
js 左右悬浮对联广告代码示例
2014/12/12 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
2015/02/26 Javascript
JS拖拽插件实现步骤
2015/08/03 Javascript
js实现的奥运倒计时时钟效果代码
2015/12/09 Javascript
原生JS取代一些JQuery方法的简单实现
2016/09/20 Javascript
快速解决js开发下拉框中blur与click冲突
2016/10/10 Javascript
微信小程序 连续旋转动画(this.animation.rotate)详解
2017/04/07 Javascript
js实现鼠标拖拽缩放div实例代码
2019/03/25 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
2019/05/21 Javascript
Python os模块中的isfile()和isdir()函数均返回false问题解决方法
2015/02/04 Python
[原创]使用豆瓣提供的国内pypi源
2017/07/02 Python
spyder常用快捷键(分享)
2017/07/19 Python
python实现对文件中图片生成带标签的txt文件方法
2018/04/27 Python
基于Python pip用国内镜像下载的方法
2018/06/12 Python
python2与python3共存问题的解决方法
2018/09/18 Python
python中报错&quot;json.decoder.JSONDecodeError: Expecting value:&quot;的解决
2019/04/29 Python
django admin后台添加导出excel功能示例代码
2019/05/15 Python
树莓派用python中的OpenCV输出USB摄像头画面
2019/06/22 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
2020/03/16 Python
Python urllib2运行过程原理解析
2020/06/04 Python
Pygame框架实现飞机大战
2020/08/07 Python
HTML5 weui使用笔记
2019/11/21 HTML / CSS
运动会广播稿400字
2014/01/25 职场文书
校庆活动方案
2014/03/31 职场文书
课前一分钟演讲稿
2014/08/26 职场文书
合作协议书范本
2014/10/25 职场文书
javaScript Array api梳理
2021/03/31 Javascript