l 1.1使用JavaScript获得浏览器内置的AJAX引擎(XMLHttpRequest对象)

l 1.2 通过AJAX引擎确定请求路径和请求参数

l 1.3 通知AJAX引擎发送请求

l AJAX引擎会在不刷新浏览器地址栏的情况下,发送请求

l 2.1 服务器获得请求参数

l 2.2 服务器处理请求参数(添加、查询等操作)

l 2.3 服务器响应数据给浏览器

l AJAX引擎获得服务器响应的数据,通过执行JavaScript的回调函数将数据传递给浏览器页面。

l 3.1 通过设置给AJAX引擎的回调函数获得服务器响应的数据

l 3.2 使用JavaScript在指定的位置,显示响应数据,从而局部修改页面的数据,达到局部刷新目的。

l $.post() 以post请求方式发送ajax

格式:jQuery.post(url, [data], [callback], [type])

参数1:url,请求路径

参数2:data,请求参数

参数3:callback,回调函数

参数4:type,返回内容格式,xml, html, script, json, text, _default。

服务器响应编码为:application/json;charset=UTF-8,回调函数data类型是json对象

服务器响应编码为:text/html;charset=UTF-8,回调函数data类型是字符串。

l 常用对象:

n JSONObject, java对象(JavaBean、Map)与JSON数据 转换工具类  对象和map集合

n JSONArray,java集合(List、Array) 与JSON数据 转换工具类

键盘按下和抬起 实现的ajax查询数据库显示下拉列表

条件查询的 拼音和文字都匹配的代码

* 条件查询商品

* @param condition

* @param params

* @return

*/

public List<Product> findAll(String word) throws SQLException{

StringBuilder builder = new StringBuilder();

List<Object> paramsList = new ArrayList<Object>();

if(word != null){

// 拼凑关键字的属性,hao拼凑成“%h%a%o%”

StringBuilder wordBuilder = new StringBuilder();

wordBuilder.append("%");

for(int i = 0 ; i < word.length() ; i ++ ){

wordBuilder.append(word.charAt(i)).append("%");   append 可以连着拼接

}

//1 汉字匹配

builder.append(" and pname like ?");

paramsList.add(wordBuilder.toString());

//2 拼音匹配

builder.append(" or pinyin like ?");

paramsList.add(wordBuilder.toString());

}

//转换成需要的条件

String condition = builder.toString();

Object[] params = paramsList.toArray();

QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());

String sql = "select * from product where 1=1 " + condition;

return queryRunner.query(sql, new BeanListHandler<Product>(Product.class), params);

}

前台页面js代码

//自动填充

$(function(){

$("#search").keyup(function(){

var url = "/day15_autocomplete/productFindByWordServlet";

var word = $(this).val();  获取用户输入的数据作为参数

if(word == "") {

//如果没有输入关键字,隐藏提供区域

$("#completeShow").slideUp(200);

return false;

}

var params = {"word":word};

$.post(url,params,function(data){

$("#completeShow").html("<ul id='itemul' class='list-group'></ul>");

for(var i = 0 ; i < data.length ; i ++){

var product = data[i];

//处理关键字显示

var str = ""+product.pname + "("+ product.pinyin +")";

$("#itemul").append("<li class='list-group-item'><a href='#'>"+str+"</a></li>");

$("#completeShow").show();

}

});

}).focus(function(){

//获得焦点时,如果有搜索项显示

if($("#completeShow li").size() > 0){

$("#completeShow").show();

}

}).click(function(){

//如果点击的是文本框,阻止点击事件,及不触发document的click事件

return false;

});

/**

* 点击其他位置时,隐藏提示区域

*/

$(document).click(function(){

$("#completeShow").slideUp(200);

});

});

Ajax 执行流程 有用 一点的更多相关文章

  1. jQuery-1.9.1源码分析系列(十六)ajax——ajax处理流程以及核心函数

    先来看一看jQuery的ajax核心处理流程($.ajax) a. ajax( [url,] options )执行流程 第一步,为传递的参数做适配.url可以包含在options中 //传递的参数只 ...

  2. SpringMVC--从理解SpringMVC执行流程到SSM框架整合

    前言 SpringMVC框架是SSM框架中继Spring另一个重要的框架,那么什么是SpringMVC,如何用SpringMVC来整合SSM框架呢?下面让我们详细的了解一下. 注:在学习SpringM ...

  3. [Java编程思想-学习笔记]第4章 控制执行流程

    4.1  return 关键字return有两方面的用途:一方面指定一个方法结束时返回一个值:一方面强行在return位置结束整个方法,如下所示: char test(int score) { if ...

  4. asp.net MVC4的执行流程

    MVC在底层和传统的asp.net是一致的,在底层之上,相关流程如下: 1)Global.asax里,MvcApplication对象的Application_Start()事件中,调用 RouteC ...

  5. 从源码角度看finish()方法的执行流程

    1. finish()方法概览 首先我们来看一下finish方法的无参版本的定义: /** * Call this when your activity is done and should be c ...

  6. ASP.NET MVC4 执行流程

    MVC在底层和传统的asp.net是一致的,在底层之上,相关流程如下: 1)Global.asax里,MvcApplication对象的Application_Start()事件中,调用 RouteC ...

  7. ThinkPHP中的跨控制器调用与框架执行流程

    一.跨控制器调用 UserController.class.php <?php namespace Home/Controller use Think/Controller class User ...

  8. angularjs源码分析之:angularjs执行流程

    angularjs用了快一个月了,最难的不是代码本身,而是学会怎么用angular的思路思考问题.其中涉及到很多概念,比如:directive,controller,service,compile,l ...

  9. Monkey源代码分析之执行流程

    在<MonkeyRunner源代码分析之与Android设备通讯方式>中.我们谈及到MonkeyRunner控制目标android设备有多种方法.当中之中的一个就是在目标机器启动一个mon ...

随机推荐

  1. Data Structure Array: Move all zeroes to end of array

    http://www.geeksforgeeks.org/move-zeroes-end-array/ #include <iostream> #include <vector> ...

  2. iOS项目中获取验证码倒计时及闪烁问题解决方案

    -(void)startTime{ __block int timeout= 59; //倒计时时间 dispatch_queue_t queue = dispatch_get_global_queu ...

  3. [GUI] QT事件与X11的关系

    做了一段时间linux下与QT事件相关的工作,经常会遇到X11,总是苦于无法完全理解其与linux以及QT事件之间的关系,所以用两篇文章来简单总结下linux中的图形管理和QT事件与X11的关系. & ...

  4. NFS指定端口,NFS缓存

    nfs服务端: #编辑/etc/nfsmount.conf,在末尾添加: #RQUOTAD_PORT=30001#LOCKD_TCPPORT=30002#LOCKD_UDPPORT=30002#MOU ...

  5. TP里的关联查询

    $res = $db->join('b on a.ex_id = b.pe_eid')->select(); 注意:这里的表a.表b需要带表前缀

  6. C++的异常捕获

    听课笔记: #define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std; void fun() { ;// ...

  7. 仿联想商城laravel实战---4、验证(lavarel的表单验证如何使用)

    仿联想商城laravel实战---4.验证(lavarel的表单验证如何使用) 一.总结 一句话总结: 验证规则和验证信息的数组:在控制器的方法中 1.注册页面中的用户名正确(比如是否重名,字段长度是 ...

  8. UI层自动化测试介绍

    UI指的是用户可以用肉眼可以看到的页面. UI层自动化测试的原理.不论是web端还是移动端,原理都是一样的,就是基于页面元素的识别和定位来进行模拟用户行为. 首先识别到某个元素,比如一个按钮,然后定义 ...

  9. 机器学习 Support Vector Machines 1

    引言 这一讲及接下来的几讲,我们要介绍supervised learning 算法中最好的算法之一:Support Vector Machines (SVM,支持向量机).为了介绍支持向量机,我们先讨 ...

  10. ORACLE 强制索引

    在一些场景下,可能ORACLE不会自动走索引,这时候,如果对业务清晰,可以尝试使用强制索引. 使用强制索引,在SELECT 后面加上/*.......*/ 中间加上索引的属性,代码如下: SELECT ...