传智播客Ajax视频后集视频随笔

本教程详细介绍了Ajax技术的各项核心操作,包括使用XHR对象发送和接收数据、处理XML数据、解决中文乱码及跨域访问等问题,并通过实际案例展示了淡入淡出等效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 ===============下骗Ajax ================

十一、第十一课   ===》 使用XHR对象发送和接受数据
a.继续上面步骤
2)注册回调函数,只写函数名称(如果加了括号,那么就把函数返回值注册给回调函数)
xmlHttp.onreadystatechange = callback;
3)设置连接信息
//第一参数是Http请求方式,一般选择get、post
//第二参数是url地址
//第三个参数表示异步还是同步,true表示异步
xmlHttp.open("GET", "ajaxserver?name="+userName, true);
4)发送数据、可是与服务器进行交互
//同步方式下,send会在服务器数据回来后才执行完
//异步方式下,send会立即执行完
xmlHttp.send(null);
5)接收响应数据
function callback(){
//判断对象状态交互完成
if (xmlHttp.readyState == 4){ 
//判断http交互是否成功,http状态码200
if(xmlHttp.status == 200){
//获得服务器返回的纯文本数据
var responseText = xmlHttp.responseText;
//显示到界面
document.getElementById("result").innerHTML = responseText;
}
}
}


十二、第十二课   ===》 浏览器穷尽测试与工具漫谈
a.没什么可写的,都是一些软件的介绍


十三、第十三课   ===》 为学员调试错误与XHR深入讲解
a.局部变量,不能多写var,status写错
b.选择post方式提交数据
xmlHttp.open("POST", "ajaxserver", "true");
//必须设置http的请求头
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.send("name=" +userName);

十四、第十四课   ===》 利用XHR接受与处理XML数据
a.服务器端修改,httpServletResponse.setContentType("text/xml;charset-utf-8");
b.客户端修改,var domObj = xmlHttp.responseXML;
//<message>123122</message>
//getElementsByTagName();所有message节点,返回一个数组
var mgeNodes = domObj.getElementsByTagName("message");
//获得子节点、获得文本内容
var textNode = mgeNodes[0].firstChild;
var responseText = textNode.nodeValue;
c.如果服务器setContentType("text/html;charset-utf-8");
firefox可以仍然出来,而ie不可以
d.ajax应用的五个步骤
1)创建XMLHttpRequest对象
2)注册回调函数
3)open与服务器建立链接
4)send向服务器发送数据
5)responseText回调函数针对不同响应状态进行处理


十五、第十五课   ===》 点评学员问题与JQuery处理XML数据
a.研发工作写代码不能太粗心。
getElementsByTagName/send只能一次/
b.javscript的创建对象方式
var obj = { name:"gg", age:20};
c.$.ajax({
type: "POST",
url: "AJAXServer",
data: "name=" + username,
dataType: "xml",  //返回数据类型
success: callback //响应成功调用函数
})
d.jquery解析dom对象
var jqueryObj = $(data);
var message = jqueryObj.children();
var text = message.text();
e.ide技巧sout按tab键就可以补全


十六、第十六课   ===》 解决XHR与图片缓存问题
a.ie的浏览器缓存,在url后面加个时间戳
var timestamp = (new Date()).valueOf();
b.拼接时要考虑前者有?号了没


十七、第十七课   ===》 解决Ajax中文乱码与跨域访问
a.中文发出后以utf-8传出
b.方案一、一般处理
encodeURI(name.val())以utf-8传输
String name = new String(old.getBytes("iso-8859-1"),"utf-8")
页面端发出的数据作一次encodeURI,服务器使用new String(old.getBytes("iso-8859-1"),"utf-8")
c.页面端数据做两次encodeURI,服务器使用URLDecoder.decode(old,"UTF-8");
var url = "ajaxserver?name=" + encodeURI(encodeURI($("#userName").val()))
String name = URLDecoder.decode(old,"UTF-8");
d.跨域,采用代理。
一个界面访问另外一个站点的服务器程序。


十八、第十八课   ===》 DOM模型与DOM.API
a.dom树的概念
b.DOM(Document Object Model)被称作文档对象模型,它是语言和平台中立的接口,允许程序和脚本动态访问和更新文档的内容,结构和风格。
c.在AJAX中,DOM对于我们来说是HTML和XML文档的一个应用程序接口,它可以把HTML,XML与AJAX中的开发语言Javascript连接起来。
d.html标签对应dom树中的元素节点
html里的文本信息都是dom树中的文本节点
html中的注视信息对应dom树中的注释节点
html标签中的属性对应dom树中的属性节点
e.属性节点包含在元素节点里
f.document是根节点,但只是一个虚的
h.html我们又把它叫做根元素节点
j.dom相关的api自己多去写代码吧


十九、第十九课   ===》 导入外部工程的问题及要完成的各种Ajax效果演示
a.如何导入?简单直接双击,intellij会直接关联。


二十、第二十课   ===》 实现淡入淡出.引出FireBug调CSS
a.好的习惯,css、img、jslib、html物理上分开。
b.如何在表示页面中弹出一个窗口?
c.一些css的小内容和firebug的一些调试技巧
d.实现步骤:
//1.找到窗口对应div节点
var winNode = $("#win");
//2.1修改css的值,让窗口显示出来
winNode.css("display","block");//没有动画的感觉
//2.2利用jquery的show方法 
winNode.show("slow");//动画缓慢的出来
//2.3利用jquery的fadeIn方法
winNode.fadeIn("slow");//淡入淡出
e.窗口的美化、出现标题栏
f.将窗口隐藏起来,只要逆向
1.winNode.css("display","none");
2.winNode.hide("slow");
3.winNode.fadeOut("slow");


二十一、第二十一课  ===》 可收缩展开的级联菜单与局部刷新
a.网上例子基本采用<ul><li></li></ul> 当然div也可以
b.list-style 子菜单的样式  margin-left 左外边距
c.初始化加载  $(document).ready(function() {
//查找ul标签
var uls = $("ul");
//注册事件
uls.click(function(){
....
})
})
d. var as = $("ul>a"); //查找ul里面的a节点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值