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 本页面传值实现代码
May 17 Javascript
javascript 内存回收机制理解
Jan 17 Javascript
jQuery下实现等待指定元素加载完毕(可改成纯js版)
Jul 11 Javascript
js 获取、清空input type=&quot;file&quot;的值(示例代码)
Dec 24 Javascript
javascript中直接引用Microsoft的COM生成Word
Jan 20 Javascript
jQuery事件之键盘事件(ctrl+Enter回车键提交表单等)
May 11 Javascript
用js实现放大镜的效果的简单实例
May 23 Javascript
基于Turn.js 实现翻书效果实例解析
Jun 20 Javascript
canvas红包照片实例分享
Feb 28 Javascript
jQuery Validate表单验证插件实现代码
Jun 08 jQuery
JavaScript遍历数组的方法代码实例
Jan 14 Javascript
javascript设计模式 ? 组合模式原理与应用实例分析
Apr 14 Javascript
利用promise及参数解构封装ajax请求的方法
AJAX检测用户名是否存在的方法
Mar 24 #Javascript
js正则匹配markdown里的图片标签的实现
浅谈react路由传参的几种方式
Mar 23 #Javascript
一百多行代码实现react拖拽hooks
node中使用shell脚本的方法步骤
详解如何解决使用JSON.stringify时遇到的循环引用问题
You might like
php 操作数组(合并,拆分,追加,查找,删除等)
2012/07/20 PHP
memcache命令启动参数中文解释
2014/01/13 PHP
php文件操作之小型留言本实例
2015/06/20 PHP
提高php编程效率技巧
2015/08/13 PHP
Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】
2019/12/03 PHP
利用JQuery的load函数动态加载其它页面的内容的实现代码
2010/12/14 Javascript
ParseInt函数参数设置介绍
2014/01/02 Javascript
浅谈Jquery核心函数
2015/06/18 Javascript
windows下安装nodejs及框架express
2015/08/07 NodeJs
分析js闭包引起的事件注册问题
2016/03/29 Javascript
AngularJS 模型详细介绍及实例代码
2016/07/27 Javascript
jQuery EasyUI API 中文帮助文档和扩展实例
2016/08/01 Javascript
js判断iframe中元素是否存在的实现代码
2016/12/24 Javascript
微信小程序滑动选择器的实现代码
2018/08/10 Javascript
layui 根据后台数据动态创建下拉框并同时默认选中的实例
2019/09/02 Javascript
vue实现手机号码的校验实例代码(防抖函数的应用场景)
2019/09/05 Javascript
微信小程序实现页面浮动导航
2020/01/08 Javascript
python通过ssh-powershell监控windows的方法
2015/06/02 Python
Python实现返回数组中第i小元素的方法示例
2017/12/04 Python
kaggle+mnist实现手写字体识别
2018/07/26 Python
Python数据类型之List列表实例详解
2019/05/08 Python
Python 继承,重写,super()调用父类方法操作示例
2019/09/29 Python
python创建ArcGIS shape文件的实现
2019/12/06 Python
适合Python初学者的一些编程技巧
2020/02/12 Python
Python图像处理库PIL中图像格式转换的实现
2020/02/26 Python
django 前端页面如何实现显示前N条数据
2020/03/16 Python
Python基于百度AI实现OCR文字识别
2020/04/02 Python
Virtualenv 搭建 Py项目运行环境的教程详解
2020/06/22 Python
汇集了世界上最好的天然和有机美容产品:LoveLula
2018/02/05 全球购物
易程科技软件测试笔试
2013/03/24 面试题
西安夏日科技有限公司Java笔试题
2013/01/11 面试题
财务出纳岗位职责
2014/02/03 职场文书
同居协议书范本
2014/04/23 职场文书
优秀共产党员演讲稿
2014/09/04 职场文书
个人批评与自我批评范文
2014/10/17 职场文书
Python  序列化反序列化和异常处理的问题小结
2022/12/24 Python