JavaScript DOM编程艺术-学习笔记(第七章)
第七章:
1.dom方法创建并且插入标签:(这种方法并没有改变文档的物理内容,而是在改变dom树)
①创建元素节点:createElement();
②内部前插入:appendChild()
③创建文本节点:createTextNode();
④设置属性节点:setAttribute();
⑤外部前插入:父元素.insertBefore(插入的元素,目标元素); 插入的元素被插入到,目标元素的前面。
⑥没有inserAfter()函数。
2.小知识点:①appendChid(这里面的元素不能加引号,否则是字符串)
②ajax的onreadysatechange() 这个函数都是小写。不知道为什么不遵循驼峰的写法,初写时,一般会写错。
③在aja post时会设置请求头,即报头,其中Content-type 设置为application/x-www-form-urlencoded;即简单的key-value的形式发送。
此外还可以设置为form-data,一般用于传输文件。(比如图片等)。在工作中向服务器传输图片,是将图片转化成二进制流,然后post去发送,而Content-type则设置为form-data
3.ajax的过程,代码:
var xmlhttp;
//平稳退化-对象检测技术
//1.创建对象
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest(); //适用于IE7+、FireFox、Chrome、Safari、Opera
}else{
xmlhttp = new ActiveXObjext("Microsoft.XMLHTTP"); //适用于IE5、IE6
}
//2.确定请求类型、发送请求
xmlhttp.open("GET","ajax1.php",true);
xmlhttp.send(); // xmlhttp.open("POST","t1.html",true);
// xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
// xmlhttp.send("a=1&b=2"); //3.响应请求(readyState 0-请求未初始化;1-与服务器建立链接;2-请求已接受;3-请求处理中;4-请求处理完成)
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState == "4" && xmlhttp.status == "200"){
var p = document.createElement("p");
var pText = document.createTextNode(xmlhttp.responseText);
p.appendChild(pText)
var body = document.getElementsByTagName("body")[0];
body.appendChild(p) ;
}
} //说在最后:浏览器一般会禁止ajax使用file://协议。 提示跨域请求只支持http等协议 。 所以测试实现时,要安装一个类似于phpstudy的软件。让自己的机器变成一台虚拟服务器。
4.ajax的缺点:可能会导致用户无法使用后退按钮或无法为特定状态下的页面添加书签。
5.“有什么理由让没有js的用户不能登录呢”,作者提倡,应该“先后兼容”的使用ajax:“在原有框架的基础上,用ajax拦住发送到服务器的请求,并将请求转交给XMLHttpResut对象处理。这种情况下,ajax就扮演了一个位于常规站点之上的层”
JavaScript DOM编程艺术-学习笔记(第七章)的更多相关文章
- JavaScript DOM编程艺术-学习笔记(第二章)
1.好习惯从末尾加分号:开始 2.js区分大小写 3.程序界万能的命名法则:①不以,数字开头的数字.字母.下划线.美元符号 ②提倡以下划线命名法来命名变量,以驼峰命名法来命名函数.但是到了公司往往会身 ...
- JavaScript DOM编程艺术学习笔记(一)
嗯,经过了一周的时间,今天终于将<JavaScript DOM编程艺术(第2版)>这本书看完了,感觉受益匪浅,我和作者及出版社等等都不认识,无意为他们做广告,不过本书确实值得一看,也值得推 ...
- JavaScript DOM编程艺术-学习笔记
发现基础不是很好,补习一下.37买了2本书(dom编程和高级程序设计). 以前读书总是自己勾勾画画,有点没意思.现在写下来,说不定会成为传世经典.哈哈...........随便扯扯淡. 第一天(201 ...
- JavaScript DOM编程艺术学习笔记-第二章JavaScript语法
一.JavaScript示例 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...
- 【干货】JavaScript DOM编程艺术学习笔记1-3
从7月29号到8月8号,断断续续地看完了这本书,做了部分实践联系.总体感觉本书真的只能算是个入门,学完之后看到库的那一章才感觉是个大坑,实践中大部分应该都是用的现成的库吧,所以还要重新学习一个库,但是 ...
- JavaScript DOM编程艺术学习笔记-第一章JavaScript简史
一,JavaScript的起源 JavaScript是Netscape与Sun公司合作开发,它是一种脚本语言,通常只能通过Web浏览器去完成一些操作.JavaScript为程序员提供了一些操控Web浏 ...
- 【干货】JavaScript DOM编程艺术学习笔记10-12【完】
十.用JavaScript实现动画效果 鼠标放到链接上,每次只显示图片的一小部分,加快加载速度. js: function prepareSlideshow(){ //对象检测 if(!documen ...
- 【干货】JavaScript DOM编程艺术学习笔记7-9
七.动态创建标记 在文档中不写占位图片和文字代码,在能调用js的情况下动态创建,文档支持性更好. 在原来的addLoadEvent prepareGallery showPic的基础上增加函数prep ...
- 【干货】JavaScript DOM编程艺术学习笔记4-6
四.案例研究:JavaScript图片库 js: function showPic(whichpic){ //取得链接 var source=whichpic.getAttribute("h ...
随机推荐
- tastypie Django REST framework
Its one of the primary authors' lecture on pyCon: http://www.youtube.com/watch?v=Zv26xHYlc8s&nor ...
- Future 和 ExecutorCompletionService 对比和使用
当我们通过Executor提交一组并发执行的任务,并且希望在每一个任务完成后能立即得到结果,有两种方式可以采取: 方式一: 通过一个list来保存一组future,然后在循环中轮训这组future,直 ...
- 两行代码实现微信小程序联系人sidebar
话不多说,先给你们看看核心数据和结构: 一.数据: city的json array,letter的array (city的json array里的首字母是我手工放置进去的,你也可以通过for循环获得c ...
- [ios] NSURL
NSLog(@“Scheme: %@”, [url scheme]); NSLog(@“Host: %@”, [url host]); NSLog(@“Port: %@”, [url port]); ...
- Unity中使用协程进行服务端数据验证手段
近期在做项目中的个人中心的一些事情,用户头像上传,下载,本地缓存,二级缓存,压缩,这些都要做,麻雀虽小五脏俱全啊,也是写的浑浑噩噩的, 当我们在上传用户头像的时候,向服务端发送上传头像请求之前,一般都 ...
- LightOJ 1248 Dice (III)
期望,$dp$. 设$dp[i]$表示当前已经出现过$i$个数字的期望次数.在这种状态下,如果再投一次,会出现两种可能,即出现了$i+1$个数字以及还是$i$个数字. 因此 $dp[i]=dp[i]* ...
- 数据持久层框架iBatis, Hibernate 与 JPA 比较
在本文中我们介绍并比较两种最流行的开源持久框架:iBATIS和Hibernate,我们还会讨论到Java Persistence API(JPA).我们介绍每种解决方案并讨论其所规定的品质,以及在广泛 ...
- Apache的htaccess文件出现500错误的原因
Apache 我平时很少用到,今天测试环境下碰到个问题,老是500错误莫名其妙 RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FI ...
- Latex—IEEE Latex模板 期刊名带下划线的问题解决
其实期刊名应该是斜体字的,但是有可能默认模板会导致斜体变下划线的问题,解决方法如下 引用包: \usepackage{ulem} %to strike the words 然后再在: \bibliog ...
- Lintcode解题报告
1. Num.196 寻找缺失的数 给出一个包含 0 .. N 中 N 个数的序列,找出0 .. N 中没有出现在序列中的那个数. 注意事项 可以改变序列中数的位置. 您在真实的面试中是否遇到过这个题 ...