Ajax第二天——大纲待更新

  JQuery中的Ajax

      jQuery 对 Ajax 操作进行了封装,

    在 jQuery 中最底层的方法是 $.ajax(),

    第二层是 load(), $.get() 和 $.post(), (常用)

    第三层是 $.getScript() 和 $.getJSON()

  更详尽的介绍请参见API

  什么是回调函数:

  这里先引用知乎网友对回调的生动形容,后续概念不再赘述回调函数概念

    你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,

    过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。

    在这个例子里,你的电话号码就叫回调函数,

    你把电话留给店员就叫登记回调函数,

    店里后来有货了叫做触发了回调关联的事件,

    店员给你打电话叫做调用回调函数,

    你到店里去取货叫做响应回调事件。

  链接:https://www.zhihu.com/question/19801131/answer/13005983

  相对正式专业的回答参见:http://www.jb51.net/article/54750.htm

    load()方法

    load() 方法是 jQuery 中最为简单和常用的 Ajax 方法, 能载入远程的 HTML 代码并插入到 DOM 中.

    它的结构是: load(url[, data][,callback])

    程序员只需要使用 jQuery 选择器为 HTML 片段指定目标位置, 然后将要加载的文件的 url 做为参数传递给 load() 方法即可

  testload.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP ‘index.jsp‘ starting page</title>
    <script type="text/javascript" src="../jquery-3.1.1.min.js"></script>
    <script type="text/javascript">
    $(function(){
        $("a").click(function(){
            //使用load方法处理ajax
            var url=this.href;
            var args={"time":new Date()};
            $("#content").load(url,args);
            return false;
            });
    });
    </script>
  </head>

  <body>
    <a href="helloAjax.txt">hello ajax</a>
    <div id="content"></div>
  </body>
</html>

  任何一个HTML结点都可以使用load()方法来加载ajax,结点直接插入到html中

   $.get() 和 $.post()方法 

    $.get() 方法使用 GET 方式来进行异步请求.

    它的结构是: $.get(url[, data][, callback][, type]);

    $.get() 方法的回调函数只有两个参数: data 代表返回的内容, 可以是 XML 文档, JSON 文件, HTML 片段等;

    textstatus 代表请求状态, 其值可能为: succuss, error, notmodify, timeout 4 种.

    $.get() 和 $.post() 方法时 jQuery 中的全局函数, 而 find() 等方法都是对 jQuery 对象进行操作的方法

    两个方法类同,不再赘述

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP ‘index.jsp‘ starting page</title>
  <script type="text/javascript" src="../jquery-3.1.1.min.js"></script>
  <script type="text/javascript">
      $(function(){
        $("a").click(function(){
            var url=this.href;
            var args={"time":new Date()};
            $.get(url,args,function(data){
                var name=$(data).find("name").text();
                var email=$(data).find("email").text();
                var website=$(data).find("website").text();
                $("#details").empty()
                        .append("<h2><a href=‘mailto:"+email+"‘>"+name+"</a></h2>")
                        .append("<a href=‘"+website+"‘>"+website+"</a>");
                });
            return false;

        });
      })
  </script>
  </head>

  <body>
    <h1>People</h1>
    <ul>
        <li><a href="files/andy.xml">Andy</a></li>
           <li><a href="files/richard.xml">Richard</a></li>
           <li><a href="files/jeremy.xml">Jeremy</a></li>
    </ul>
    <div id="details"></div>
  </body>
</html>

  //其中的function是回调函数,当响应结束时,回调函数被触发,响应结果在data中

  testgetJSON 测试JSON数据格式

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP ‘index.jsp‘ starting page</title>
<script type="text/javascript" src="../scripts/jquery-1.4.2.js"></script>
  <script type="text/javascript">
  //url:ajax请求的目标url
  //args:传递的参数:json类型
  //data:ajax响应成功后的数据,可能是xml,html,json
      $(function(){
        $("a").click(function(){
            var url=this.href;
            var args={"time":new Date()};
            $.getJSON(url,args,function(data){
                var name=data.person.name;
                var email=data.person.eamil;
                var website=data.person.website;
                $("#details").empty()
                        .append("<h2><a href=‘mailto:"+email+"‘>"+name+"</a></h2>")
                        .append("<a href=‘"+website+"‘>"+website+"</a>");
                });
            return false;

        });
      })
  </script>
  </head>

  <body>
    <h1>People</h1>
    <ul>
        <li><a href="files/andy.js">Andy</a></li>
           <li><a href="files/richard.js">Richard</a></li>
           <li><a href="files/jeremy.js">Jeremy</a></li>
    </ul>
    <div id="details"></div>
  </body>
</html>

  //其中的getJSON也可以简写为get,在get()最后一个参数使用type参数“JSON”

时间: 2024-07-30 18:54:06

Ajax第二天——大纲待更新的相关文章

maven第二天——大纲待更新

一.在eclipse中建立工程 在day01中我们搭建了eclipse的maven环境,接下来我们开始建立maven项目 1.在eclipse中建立JAVA工程 file->new->maven project,勾选 create a simple project->next 在上述对话框中填入坐标信息和打包方式(这里选择jar),将以下信息填入,建立工程 groupId:com.atguigu.maven ArtifactId:MakeFriends Package:com.atgui

mybatis第二天——大纲待更新

大纲摘要: 1.输入映射和输出映射 a) 输入参数映射 b) 返回值映射 2.动态sql a) If b) Where c) Foreach d) Sql片段 3.关联查询 a) 一对一关联 b) 一对多关联 4.Mybatis整合spring 一.输入映射和输出映射 1.输入映射 也就是day01提到的入参 传递简单类型:见day01,这里不再赘述 传递POJO包装类型: 开发中通过pojo传递查询条件 ,查询条件是综合的查询条件, 不仅包括用户查询条件还包括其它的查询条件(比如将用户购买商品

线段树第二弹(区间更新)

上篇文章,我们介绍了线段树的基本概念和单点更新.区间查询,今天,我们来接着上次的线段树问题继续深入研究.在解决线段树问题的过程中,我们会遇到要求修改区间中某一元素值的问题,当然也可能会遇到要求修改一段子区间所有值的问题--即区间更新问题.回忆一下上篇文章单点更新的方法是,由叶节点逐级向上进行更新,此时更新一个节点值的时间复杂度为o(log n),(点击链接了解详情:线段树+RMQ问题第二弹),那么以这样的处理效率来进行区间更新结果会怎样?现在假设待更新区间数据的规模为 n ,那么就需要进行 n

AJAX第二例(发送POST请求)

第二例:发送POST请求(如果发送请求时需要带有参数,一般都用POST请求) * open:xmlHttp.open("POST" ....); * 添加一步:设置Content-Type请求头: > xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); * send:xmlHttp.send("username=zhangSa

Javascript,jQuery,ajax学习笔记。持续更新中。[荐]

欢迎大家关注我的博客,我的博客是在平常学习看书中和总结而撰写的,欢迎大家和我交流,不足之处还很多,希望大家和我交流. 一:javascript基础系列(已完结) 二:javascript基础系列之DOM(已完结) 三:jQuery系列文章(未完结) 四:AJAX(未完结) 五:JavaScript权威指南第6版中文版   一:javascript基础系列: Javascript基础系列之(一)JavaScript语法 Javascript基础系列之(二)变量 Javascript基础系列之(三)

使用Echarts的时候ajax第二次请求的时候,图表会等待请求完成后才刷新出来

在使用echarts图表的时候,选完条件后,ajax请求的过程中,因为请求的事件快慢的原因,导致图表会消失,给人的体验感贼差(虽然可以通过类似"信息加载中.."来处理), 查看自己的代码中发现了原因:var myChart1 = echarts.init(document.getElementById('app1'));这句代码放在了function中,导致每次请求的时候每次都会声明一个 mychart1的对象,导致图形页面有一段时间(请求的时间)的不显示: 页面展示如下: 部分代码如

IE浏览器下ajax缓存导致数据不更新的解决方法

摘自:http://www.iefans.net/ie-ajax-json-shuju-huancun/ 最近做设计的时候遇到一个小问题,当你用jquery的getjson函数从后台获取数据的时候,IE浏览器会自动设置缓存,如果此时你对数据进行修改的时候刷新页面,IE并不会在页面显示你修改后的数据,因为你刷新的时候IE浏览器会查找缓存并显示你修改前的数据,最后在网上查了些资料终于解决了IE浏览器下的问题. 方法就是在你的请求的URL 后面设置个可变的参数,比如: Java代码 $.getJSON

PrimeFace JSF中使用ajax控件无法实时更新文本框inputTextarea内容

PrimeFace+JSF实际工作需要点击一个树将关联的文本添加到inputTextarea文本框,inputTextarea允许用户随意更改,ajax绑定树的select事件,但点击时,后台Bean对象无法实时获取前台文本框改变的实际内容. 原因估计ajax控件无法将前台文本框数据关联到后台. 解决方案: 添加一个按钮和文本框鼠标事件,事件JS调用按钮click事件,由按钮将文件夹数据同步到后台. 前台代码: <script> function callButton(){ document.

第二周-词频统计更新

词频统计功能新增: HTTPS:https://git.coding.net/li_yuhuan/WordFrequency.git SSH:[email protected]:li_yuhuan/WordFrequency.git 代码: static void Main(string[] args) { string str = ""; int length = args.Length; switch (length) { case 0: { string line = Conso