Ajax专题整理

本文介绍了Ajax技术的基本概念,探讨了其应用场景,并提供了详细的实现方法,包括原生JavaScript和jQuery两种方式,最后展示了如何利用JSON进行数据交换。

(一)Ajax的简介

AjaxW3C的解析如下:

AJAX = 异步 JavaScript XML

AJAX 是一种用于创建快速动态网页的技术。

通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。

有很多使用 AJAX 的应用程序案例:新浪微博、Google 地图、开心网等等。

 

(二)Ajax的应用场景

Ajax主要应用于网页于后台在无刷新的场景下实现数据的交互,例如数据加载、实时校验等客户端与服务端的交互场景

(三)Ajaxjs原生实现方式

JsxmlHttpRequest主要用于与服务器进行数据交换而且适用于所有现代浏览器。

js的实现方式为:

1、创建请求

var xmlHttpRequest = new XMLHttpRequest();

2、设置请求状态变化时所触发的事件

xmlHttpRequest.readyState的状态

0连接未创建

1连接已经创建

2请求已经接收

3请求处理中

4请求已经完成,响应已经就绪

xmlHttpRequest.onreadystatechange = function () {

if(xmlHttpRequest.readyState == 4){

if(xmlHttpRequest.status == 200){

alert(xmlHttpRequest.responseText);

}

}

}

3、创建连接

xmlHttpRequest.open("post","http://loocalhost:8080/testWeb/AJAXServletTest",true);

4、发送请求

xmlHttpRequest.send();

 

服务器端:

response.getWriter().println(request.getParameter("username"));

 

 

 

(四)AjaxjQuery应用方式

1.Ajax方式

[$|jQuery].ajax({

type:["GET"|"POST"],

url:请求的地址,

data:提交的数据

success:响应完成后需要执行的方法

});

 

不管是原生的还是jQuery的ajax,都需要设置5个部分

1,type:请求方式

2,url:请求的路径

3,data:请求的参数

4,success:回调函数-用于处理服务器发给回来的数据

5,对于post请求,需要设置一个头Content-Type  jQuery已经帮我们实现

 

get方式:

$.ajax({

type:"GET",

url:请求地址,

data:提交数据,

success:function(){

$("#div01").html(msg+"GET");

}

});

 

post方式

$.ajax({

type:"POST",

url:请求地址,

data:提交数据,

success:function(){

$("#div01").html(msg+"POST");

}

});

 

2.get方式

get方式:

两个参数:

url:设置请求的地址

fn:设置请求响应完成后要执行的方法

 

eg

$.get(url,function (data){

alert("ddd");

});

三个参数:

url:设置请求的地址,

data:设置向服务器提交的数据json格式,

fn:设置请求响应完成后要执行的方法

eg

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

 alert("ddddd");

});

3.post方式

post方式:

三个参数

url:设置请求的地址

data:设置向服务器提交的数据

"username=zhangsan&password=123"

{username:"zhangsan",password:"123"}

fn:设置请求响应完成后要执行的方法

举例:

$.post("/myJQueryAJAX/JQueryAJAXServlet","username=zhangsan",function(msg) {

$("#div01").html(msg);

});

4.load方式

load方式:

一个参数:

url

eg

$("div").load(url);

 

两个参数:

url

data

$("div").load(url,data);

eg:

举例:$("#div01").load("/myJQueryAJAX/JQueryAJAXServlet","username=lisi");

 

注意:

load方法是由标签来调用的,他可以直接把服务器传过来的数据塞到调用它的jQuery标签对象里面

load方法可以根据参数的不同,选择不同的提交方式,只有第二个参数是js对象的时候,才会使用post方式

实际开发中 用的最多 getpost

应用场景

如果你仅仅想得到一些数据,如某个商品的信息,传一个页码,或者商品的编号,get请求

像表单登录, 验证,重要程度比较高的 用post方式,相对比较安全

 

 

(五)Ajaxjson做数据交换的常用方式

json数据处理:

//jsonlib

//JSONArray可以将数组,List转换成json格式的数据

//JSONObject可以将对象,Map转换成json格式的数据

服务器端:

JSONArray jsonArray = JSONArray.fromObject(ss);

out.println(jsonArray.toString());//将json数组对象的字符串形式发送出去

客户端:

data = eval("("+data+")");

Eg:

服务器端:

JSONObject json = new JSONObject();

Map<String, Object> returnMap = new HashMap<>();

returnMap.put("result", "success");

returnMap.put("msg", "处理成功!");

response.getWriter().println(json.fromObject(returnMap).toString());

 

客户端:

$.ajax({

type:"POST",

url:"${pageContext.request.contextPath }/ProductServlet",

data:{"op":"getProductByAjax","categoryid":"${param.categoryid}"},

success:function (data) {

data = eval("("+data+")");

if("success" == data.result){

if(data.lp.length == 0){

$("table").append("<tr><td colspan='6'>查无数据</td></tr>");

}

$(data.lp).each(function (){

 var s = "<tr>";

 s += "<td><input type='checkbox' name='pids' value='"+this.pid+"'/></td>";

s += "</tr>";

$("table").append(s);

});

} else if ("fail" == data.result){

$("table").append("<tr><td colspan='5'><font color='red'>发生错误,请联系系统管理员!</font></td></tr>");

} else {

$("table").append("<tr><td colspan='5'><font color='red'>发生未知错误,请联系系统管理员!</font></td></tr>");

}

}

});

 

(1)普通用户端(全平台) 音乐播放核心体验: 个性化首页:基于 “听歌历史 + 收藏偏好” 展示 “推荐歌单(每日 30 首)、新歌速递、相似曲风推荐”,支持按 “场景(通勤 / 学习 / 运动)” 切换推荐维度。 播放页功能:支持 “无损音质切换、倍速播放(0.5x-2.0x)、定时关闭、歌词逐句滚动”,提供 “沉浸式全屏模式”(隐藏冗余控件,突出歌词与专辑封面)。 多端同步:自动同步 “播放进度、收藏列表、歌单” 至所有登录设备(如手机暂停后,电脑端打开可继续播放)。 音乐发现与管理: 智能搜索:支持 “歌曲名 / 歌手 / 歌词片段” 搜索,提供 “模糊匹配(如输入‘晴天’联想‘周杰伦 - 晴天’)、热门搜索词推荐”,结果按 “热度 / 匹配度” 排序。 歌单管理:创建 “公开 / 私有 / 加密” 歌单,支持 “批量添加歌曲、拖拽排序、一键分享到社交平台”,系统自动生成 “歌单封面(基于歌曲风格配色)”。 音乐分类浏览:按 “曲风(流行 / 摇滚 / 古典)、语言(国语 / 英语 / 日语)、年代(80 后经典 / 2023 新歌)” 分层浏览,每个分类页展示 “TOP50 榜单”。 社交互动功能: 动态广场:查看 “关注的用户 / 音乐人发布的动态(如‘分享新歌感受’)、好友正在听的歌曲”,支持 “点赞 / 评论 / 转发”,可直接点击动态中的歌曲播放。 听歌排行:个人页展示 “本周听歌 TOP10、累计听歌时长”,平台定期生成 “全球 / 好友榜”(如 “好友中你本周听歌时长排名第 3”)。 音乐圈:加入 “特定曲风圈子(如‘古典音乐爱好者’)”,参与 “话题讨论(如‘你心中最经典的钢琴曲’)、线上歌单共创”。 (2)音乐人端(创作者中心) 作品管理: 音乐上传:支持 “无损音频(FLAC/WAV)+ 歌词文件(LRC)+ 专辑封面” 上传,填写 “歌曲信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值