• [技术干货] Ajax实现页面无刷新留言效果
    实现效果前言:在百度贴吧,以及一些论坛中,当你回复或者评论完毕之后,从来没有见过页面重新刷新加载的效果,那么这个究竟是怎么做成的呢,也就是利用Ajax技术,页面无刷新效果,废话不多说,直接上代码。html部分:123456789101112131415161718<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.cssjs部分:12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788//———————————实现页面初始化数据 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————————————
  • [技术干货] 前端编程中的AJAX
    前端编程中的AJAX服务器  什么是服务器:咱们的页面来源于服务器;实例(在phpnwo上面存放一个页面),  咱们把页面放在互联网的服务器上,就有了自己的网站了。  1.异步同步  生活中的同步:  生活中的异步:  在JavaScript语言中,同步和异步的概念刚好相反。  这JavaScript中同步就是:你不执行完上面的代码,那么下面的代码你就别执行;一步一步执行,这就是同步。  异步就是可以一块执行的代码;  进程的概念  进程≠程序  程序从开始到结束的一次执行过程叫做进程  一个进程当中,程序同时运行的多个分支,叫做线程  多线程异步执行,可以提高程序的效率  AJAX的重要性  在许多数企业看来AJAX的使用熟练程度 === 你的工作经验。  2.什么是AJAX  ajax是前后端数据交互的重要手段  Ajax 全称为:“Asynchronous JavaScript and XML”(异步 JavaScript 和 XML), 它并不是 JavaScript 的一种单一技术,而是利用了一系列交互式网页应用相关的技术所形 成的结合体。使用 Ajax,我们可以无刷新状态更新页面,并且实现异步提交,提升了用户体验。  一.Ajax 概述  Ajax 这个概念是由 JesseJamesGarrett 在 2005 年发明的。它本身不是单一技术,是一串 技术的集合,主要有:  1.JavaScript,通过用户或其他与浏览器相关事件捕获交互行为  2.XMLHttpRequest 对象,通过这个对象可以在不中断其它浏览器任务的情况下向服务 器发送请求;  3.服务器上的文件,以 XML、HTML 或 JSON 格式保存文本数据;  4.其它 JavaScript,解释来自服务器的数据(比如 PHP 从 MySQL 获取的数据)并将其 呈现到页面上。  由于 Ajax 包含众多特性,优势与不足也非常明显。优势主要以下几点:  1.不需要插件支持(一般浏览器且默认开启 JavaScript 即可);  2.用户体验极佳(不刷新页面即可获取可更新的数据);  3.提升 Web 程序的性能(在传递数据方面做到按需放松,不必整体提交);  4.减轻服务器和带宽的负担(将服务器的一些操作转移到客户端);  而 Ajax 的不足由以下几点:  1.不同版本的浏览器度 XMLHttpRequest 对象支持度不足(比如 IE5 之前);  2.前进、后退的功能被破坏(因为 Ajax 永远在当前页,不会几率前后页面);  3.搜索引擎的支持度不够(因为搜索引擎爬虫还不能理解 JS 引起变化数据的内容);  4.开发调试工具缺乏(相对于其他语言的工具集来说,JS 或 Ajax 调试开发少的可怜) 。  3.AJAX的使用  电话的接打顺序:  1.首先要有一个电话;  2.拨号;  3.说话;  4.听电话另一边的信息;  //有一个电话:创建请求对象;  1.var AJAX=new XMLHttpRequest( );  //拨号:设置请求参数;  2.AJAX.open('get','data/test.json',true);  第一个参数:POST||GET  POST和GET的区别  POST是发送数据,GET是接受数据;  PSOT发送数据的安全性较好,而GET较差;  POST发送数据不限制大小,而GET大小受限2~100k。  什么时候用GET和POST那:在数据获取时用GET方式,在操作数据时应使用POST方式。  第三个参数:当该boolean值为true时,服务器请求是异步进行的,也就是脚本执行send()方法后不等待  服务器的执行结果,而是继续执行脚本代码;  当该boolean值为false时,服务器请求是同步进行的,也就是脚本执行send()方法后等待  服务器的执行结果的返回,若在等待过程中超时,则不再等待,继续执行后面的脚本代码!3. ajax.onreadystatechange = function()     {         if (ajax.readyState == 4 && ajax.status == 200)         {             func_succ(ajax.responseText);         }         else         {             //alert("ajax faild readyState:"+ajax.readyState+" status:"+ajax.status);         }     };4.ajax.send(null);  ajax.readyStatus  0 - (未初始化)还没有调用send()方法  1 - (载入)已调用send()方法,正在发送请求  2 - (载入完成)send()方法执行完成,已经接收到全部响应内容  3 - (交互)正在解析响应内容  4 - (完成)响应内容解析完成,可以在客户端调用了
总条数:17 到第
上滑加载中