【笔记】 《js权威指南》- 第13章 浏览器中的JS
来源:互联网 发布:淘宝会员等级没了2017 编辑:程序博客网 时间:2024/05/17 08:08
1.在html中嵌入JS:
(1).<script>元素:
<script><![CDATA[//代码]]></script>
(2). <script>元素的src属性:使用外部js。
(3). <script>元素的type属性:定义脚本语言的类型,默认为text/javascript
<script type="text/vbscript"></script>
2.js程序的执行:
(1). 同步异步和延迟的脚本:
当HTML解析器遇到script标签时,它默认必须先执行脚本,在脚本下载加载完毕以后才开始页面UI渲染;
默认的执行时同步阻塞的,可以使用defer async属性(在支持的浏览器)改变执行方式
<!-- 延迟脚本执行,先载入解析DOM --><script defer src = "a.js"></script><!-- 异步执行脚本和解析DOM --><script async src = "a.js"></script><!-- 只识别async --><script async defer src = "a.js"></script>
//异步加载的兼容实现function loadasync(url) { var head = document.getElementsByTagName("head")[0]; var s = document.createElement("script"); s.src = url; head.appendChild(s);}
(2)..客户端js的线程模型:
a. setTimeout和setInterval;
b. Web Worker(ECMAS5);
3. 兼容性和互用性:
(1).使用处理兼容性问题的类库:
e.g jQuery 使用bind方法处理事件;
(2).功能测试:
if (element.addEventListener) {}else if (element.attchEvent) {}else {}
(3).标准模式和怪异模式的判断:
通过html文件顶部的doctype决定文档的渲染方法是标准模式和怪异模式;
如果document.compatMode为CSS1Compat为标准模式,如果为BackCompat或者undefined表明怪异模式。
(4). IE浏览器中的条件注释:
<!--[if IE 6]><![endif]--><!--[if lte IE 6]><![endif]--><!--[if !IE]><--><!--><![endif]-->
/*@cc_on @if (@_jscript) //IE会执行 alert('You are using IE'); @else*/ //IE以外会执行 alert("Not IE");/*@end @*/
5.安全性:
(1). JS中的一些安全性限制:
(2). 同源策略:
概述:
.脚本只能读取和所属文档来源相同的窗口和文档的属性。同理发送http请求。
文档的来源包含协议、主机以及端口:
不同Web服务器载入的文档来源不同;
同一主机不同端口载入的文档来源不同;
使用http协议载入的两个文档及时来自同一个服务器也属于来源不同;
使用不严格的同源策略:
a.document.domain属性。
默认情况为载入文档的服务器的主机名。
e.g 初始值"home.example.com",设置为"example.com"这样诸如"xx.example.com"的子域如果设置了相同的domain值就和主页属于同源。
b. 跨域资源共享:
允许如武器用头信息显示列出源,如果使用通配符则表示允许任何源。这样就能接受跨域http请求。
c. 跨文档消息:
允许不同源的脚本传递文本消息。window.postMessage 和onmessage响应。
(3). 跨站脚本 XSS:
如果Web动态产生内容,并且该内容是基于用户提交的数据,那么需要将这个数据去标签化,以防不良脚本的植入。
name = name.replace(/</g, "<").replace(/>/g, ">");
- 【笔记】 《js权威指南》- 第13章 浏览器中的JS
- JS权威指南学习笔记-浏览器中的JS
- 【笔记】 《js权威指南》- 第5章 语句
- 【笔记】 《js权威指南》- 第6章 对象
- 【笔记】 《js权威指南》- 第7章 数组
- JavaScript权威指南第13章 web浏览器中的javascript
- 【笔记】 《js权威指南》- 第1章 JS概述 - 1.2 客户端JS
- js权威指南之web浏览器中的javascript
- js权威指南学习笔记
- 【笔记】 《js权威指南》- 第3章 类型、值和变量 - 3.1 数字
- 【笔记】 《js权威指南》- 第3章 类型、值和变量 - 3.2 文本
- 【笔记】 《js权威指南》- 第3章 类型、值和变量 - 3.5 全局对象
- 【笔记】 《js权威指南》- 第3章 类型、值和变量 - 3.8 类型转换
- 【笔记】 《js权威指南》- 第3章 类型、值和变量 - 3.10 变量作用域
- 【笔记】 《js权威指南》- 第4章 表达式和运算符
- 【笔记】 《js权威指南》- 第6章 对象 - 6.1 创建对象
- 【笔记】 《js权威指南》- 第6章 对象 - 6.2 - 6.4 属性操作1
- 【笔记】 《js权威指南》- 第6章 对象 - 6.5 - 6.6 属性操作2
- SQL优化
- 利用自定义XlistView进行页面展示和页面配置
- 非正常结束weblogic进程导致weblogic无法启动(锁)<BEA-141281> <unable to get file lock, will retry …>
- nginx $uri 和 $request_uri 的区别
- Xcode中建立pch文件
- 【笔记】 《js权威指南》- 第13章 浏览器中的JS
- C3P0连接池详解及配置
- 用python写的opencv实时监测和解析二维码和条形码最牛教程
- iPhone应用:SoccerClub
- HDOJ 1572 下沙小面的(2)
- 红帽5和6的NTP时间同步
- 76.iOS 网络缓存(NSURLCache/NSCachedURLResponse)
- linux服务器同步时间
- Spring注入方式介绍