ajax 异步 javaScript and xml

开发五步骤:

1. 创建对象 XMLHttpRequest(chrome,firefox) ie... jquery

2. 找到连接, http的method方法    GET|POST    PUT DELETE

3. 注册监听器  有数据返回之后,就会自动调用该方法(不是一次 3次)

4. 发送请求 POST PUT delete 请求数据

5. 处理请求

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html>
 4 <html>
 5 <head>
 6 <meta charset="UTF-8">
 7 <title>Insert title here</title>
 8 <style>
 9 * {
10     margin: 0;
11     padding: 0
12 }
13 </style>
14 </head>
15 <body>
16     <input οnkeyup="tips(this)">
17     <div id="tip"></div>
18     <script>
19         function tips(th) {
20             //创建对象
21             var req = new XMLHttpRequest();
22             //打开链接
23             req.open("GET", "tips.jsp?k=" + th.value);
24             //注册监听器
25             req.onreadystatechange = function() {
26                 //0.1.2.3.4 5中状态 我们只需要4(请求完成 )来接收返回来的数据即可 其他情况选择忽略
27                 if (req.readyState == 4) {
28                     //当页面状态200代表请求成功
29                     if (req.status == 200) {
30                         //将传回来的值因为包括页面中的空格,所以利用分割字符串
31                         var arr = req.responseText.split(",");
32                         //循环拼接字符串成ul输出
33                         var str = "<ul>";//头
34                         for (var i = 0; i < arr.length; i++) {
35                             str += "<li>" + arr[i] + "</li>";//中间的li
36                         }
37                         str += "<ul>";//尾
38                         //获取页面tip盒子输出值
39                         document.getElementById("tip").innerHTML = str;
40
41                     }
42                 }
43             }
44             //发送请求
45             req.send();
46         }
47     </script>
48 </body>
49 </html>

当我们提交类型为POST时,要注意:

1.open打开连接的方式要为(第一个参数)post并且(第二个参数)url为链接地址:

 req.open("POST","tips.jsp");

2.设置请求头:

    req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

3.发送请求的时候写上传输的值:

 req.send("k="+th.value);

源码:

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html>
 4 <html>
 5 <head>
 6 <meta charset="UTF-8">
 7 <title>Insert title here</title>
 8 <style>
 9 * {
10     margin: 0;
11     padding: 0
12 }
13 </style>
14 </head>
15 <body>
16 <input οnkeyup="tips(this)">
17 <div id="tip"></div>
18 <script>
19   function tips(th) {
20     //创建对象
21     var req=new XMLHttpRequest();
22     //打开链接
23     //req.open("GET","tips.jsp?k="+th.value);
24     req.open("POST","tips.jsp");
25     //设置请求头
26     req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
27     //注册监听器
28     req.onreadystatechange=function(){
29       if(req.readyState==4){
30         if(req.status==200){
31             //将传回来的值因为包括页面中的空格,所以利用分割字符串
32             var arr = req.responseText.split(",");
33             //循环拼接字符串成ul输出
34             var str = "<ul>";//头
35             for (var i = 0; i < arr.length; i++) {
36                 str += "<li>" + arr[i] + "</li>";//中间的li
37             }
38             str += "<ul>";//尾
39             //获取页面tip盒子输出值
40             document.getElementById("tip").innerHTML = str;
41
42         }
43       }
44     }
45     req.send("k="+th.value);
46   }
47
48 </script>
49 </body>
50 </html>

View Code

ajax+jquery:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4 <meta charset="UTF-8">
 5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 7 <title>Document</title>
 8 <script src="https://cdn.bootcss.com/jquery/2.2.3/jquery.min.js"></script>
 9 <script>
10 $(function(){
11     $("input").keyup(function(){
12         //console.log($(this).val());
13         //$.get("tips.jsp?k="+$(this).val(),function(data){14         $.post("tips.jsp","k="+$(this).val(),function(data){
15             var arr = data.split(",");
16             var str = "<ul>";
17             for(var i=0;i<arr.length;i++){
18                 str+="<li>"+arr[i]+"</li>";
19             }
20             str+="</ul>";
21             $("#tips").html(str);
22         });
23     })
24 })
25 </script>
26 <style>
27 *{margin:0;padding:0}
28 ul li{
29
30     list-style:none;
31 }
32 </style>
33 </head>
34 <body>
35     <input>
36     <div id="tips"></div>
37 </body>
38 </html>

转载于:https://www.cnblogs.com/LiuOOP/p/11096407.html

js(三) ajax异步局部刷新技术底层代码实现相关推荐

  1. php后台登录页修改成ajax,使用php后台给自己做一个页面路由,配合ajax实现局部刷新。(示例代码)...

    今天就要放假了,把近来囤积的小玩意儿总结整理一下. 在请求一个html页面来嵌入到当前页会有一个问题,就是跟随请求过来的html他的样式表和脚本会失效.是因为文档加载的先后顺序等问题造成的.因此,加载 ...

  2. Ajax实现局部刷新

    Ajax实现局部刷新 前言 一. Ajax是什么? 二.实现方式: 1.原生的JS实现方式(了解) 2.JQeury实现方式 1. $.ajax() 2. $.get():发送get请求(ajax的简 ...

  3. ajax局部刷新 php,PHP中ajax的局部刷新

    最近做的项目用php5开发,现在将使用的局部刷新总结下: 1,使用情况是:我点击本页面,要使本页面的某块局部刷新: 本页面通过这种方式包含局部页面: function localRef(){ var ...

  4. ajax异步请求刷新layui表格

    ajax异步请求刷新Layui表格数据 今天遇到一个小问题,向后端传一个bean插入到数据库后,在前端页面同步显示.刚开始直接用from表单把数据传给后台进行插入操作,但是这样前端不能及时接收到后端完 ...

  5. java局部刷新_HTML页面局部刷新的实现代码

    这篇文章主要介绍了HTML页面局部刷新的实现代码的相关资料,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下.如有不足之处,欢迎批评指正. 事件响应刷新:有请求才会刷新 1.通过 ...

  6. ajax 上传文件实例,Ajax异步上传文件实例代码分享

    非常不多说,直接给大家上干货,写的不好还请见谅. 具体代码如下所示: Index $(function() { $(':button').click(function () { var formDat ...

  7. 1.Ajax局部刷新技术概述,底层原理,全局刷新的例子

    文章目录 Ajax 0.第四阶段概述 本阶段课程内容: 哪些感觉比较难? 1.全局刷新 和局部刷新 2.异步对象 3.Ajax 4.Ajax中使用异步对象 (1)创建异步对象 (2)给异步对象绑定事件 ...

  8. js 只刷新ajax,JS实现AJAX局部刷新(附代码)

    这次给大家带来JS实现AJAX局部刷新(附代码),JS实现AJAX局部刷新的注意事项有哪些,下面就是实战案例,一起来看一下. AJAX即"Asynchronous Javascript An ...

  9. HTML发送异步请求,使用原生JS发送ajax异步请求

    Ajax Ajax: Asynchronous javaScript and xml (异步的JavaScript和xml技术).当我们向服务器发起请求的时候,服务器不会像浏览器响应整个页面,而是只有 ...

最新文章

  1. Python可视化(matplotlib)在图像中添加文本和标记(Text and Annotation)
  2. 在Linux中同时删除一百万个小文件的最快方法
  3. kmeans python interation flag_Python / Scipy Integration数组
  4. crackme之018
  5. 如何校验内存数据的一致性,DynamicExpresso 算是帮上大忙了
  6. 剑指offer 面试32题
  7. linux配置php项目路径,linux下如何修改php.ini路径
  8. raspberry nas_使用Raspberry Pi NAS托管您自己的云
  9. el-input的使用
  10. (二)为自动化MLOps设置GitHub、Docker和Google Cloud Platform
  11. gtp怎么安装系统_UEFI+GTP模式下使用GHO文件安装WIN7或WIN8图文教程
  12. boost boost::asio::read socket.read_some 区别
  13. mysql search yum_mysql的yum安装与配置
  14. 你所不知道的JavaScript数组
  15. c# chart 各个属性_C# WINFORM项目Chart控件显示问题
  16. 二极管计算机原理,二极管的原理
  17. 计算机pdf转换word,PDF怎么转换成Word?解决PDF转Word的小妙招
  18. Mono.Cecil简介与示例
  19. POSCMS 城市三联动回显(自定义)
  20. 基于JAVA鞋店销售管理计算机毕业设计源码+系统+mysql数据库+lw文档+部署

热门文章

  1. 7.3.1 阻塞IO(blocking IO)
  2. Bubble Sort Aizu - ALDS1_2_A
  3. 【STM32】低功耗相关函数和类型
  4. 【Android】Android模拟器无法上网问题
  5. 【算法】二分图的判定
  6. 每天一道LeetCode----位运算实现加减乘除四则运算
  7. java(2)——字面常量和变量,变量的作用域,局部变量,成员变量
  8. LVS(6)——NAT准备工作
  9. 滑动窗口最大值—leetcode239
  10. 剑指offer-3 从尾到头打印链表