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实现的类似百度搜索的输入框自动完成功能
Aug 23 Javascript
js动态创建表格,删除行列的小例子
Jul 20 Javascript
js读取csv文件并使用json显示出来
Jan 09 Javascript
每个程序员都需要学习 JavaScript 的7个理由小结
Sep 03 Javascript
微信js-sdk分享功能接口常用逻辑封装示例
Oct 13 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
Feb 22 Javascript
ExtJs异步无法向外传值和赋值的完美解决办法
Jun 14 Javascript
详解webpack3编译兼容IE8的正确姿势
Dec 21 Javascript
vue数据操作之点击事件实现num加减功能示例
Jan 19 Javascript
Vue 进阶之路(三)
Apr 18 Javascript
原生js实现贪吃蛇游戏
Oct 26 Javascript
js仿淘宝放大镜效果
Dec 28 Javascript
利用promise及参数解构封装ajax请求的方法
AJAX检测用户名是否存在的方法
Mar 24 #Javascript
js正则匹配markdown里的图片标签的实现
浅谈react路由传参的几种方式
Mar 23 #Javascript
一百多行代码实现react拖拽hooks
node中使用shell脚本的方法步骤
详解如何解决使用JSON.stringify时遇到的循环引用问题
You might like
thinkPHP和onethink微信支付插件分享
2019/08/11 PHP
js 跨域和ajax 跨域问题小结
2009/07/01 Javascript
jquery 1.3.2 IE8中的一点点的小问题解决方法
2009/07/10 Javascript
Javascript中的默认参数详解
2014/10/22 Javascript
JavaScript中判断整字类型最简洁的实现方法
2014/11/08 Javascript
网页从弹窗页面单选框传值至父页面代码分享
2015/09/29 Javascript
轻松学习jQuery插件EasyUI EasyUI创建CRUD应用
2015/11/30 Javascript
JavaScript实现简单Tip提示框效果
2016/04/20 Javascript
canvas绘制表盘时钟
2017/01/23 Javascript
Bootstrap滚动监听组件scrollspy.js使用方法详解
2017/07/20 Javascript
Mac中安装nvm的教程分享
2017/12/11 Javascript
vue项目中mock.js的使用及基本用法
2019/05/22 Javascript
vue-cli3+ts+webpack实现多入口多出口功能
2019/05/30 Javascript
解决layer 动态加载select 失效的问题
2019/09/18 Javascript
JS简易计算器实例讲解
2020/06/30 Javascript
[04:26]DOTA2上海特锦赛小组赛第二日 TOP10精彩集锦
2016/02/27 DOTA
python用ConfigObj读写配置文件的实现代码
2013/03/04 Python
在Python的Flask框架下使用sqlalchemy库的简单教程
2015/04/09 Python
python使用PyCharm进行远程开发和调试
2017/11/02 Python
Python实现判断一个字符串是否包含子串的方法总结
2017/11/21 Python
Python实现连接postgresql数据库的方法分析
2017/12/27 Python
分享一下Python数据分析常用的8款工具
2018/04/29 Python
Python wxPython库使用wx.ListBox创建列表框示例
2018/09/03 Python
用Python PIL实现几个简单的图片特效
2019/01/18 Python
python实现大转盘抽奖效果
2019/01/22 Python
利用python实现对web服务器的目录探测的方法
2019/02/26 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
Python eval函数介绍及用法
2020/11/09 Python
阿迪达斯荷兰官方网站:adidas荷兰
2018/03/16 全球购物
新加坡网上化妆品店:Best Buy World
2018/05/18 全球购物
澳大利亚床上用品、浴巾和家居用品购物网站:Bambury
2020/04/16 全球购物
高校自主招生自荐信
2013/12/09 职场文书
2014年仓库管理工作总结
2014/12/17 职场文书
老人节主持词
2015/07/04 职场文书
入党积极分子培养联系人意见
2015/08/12 职场文书
Go Plugins插件的实现方式
2021/08/07 Golang