1、异步载入一个js代码
function loadasync(url) {
var head = document.getElementsByTagName("head")[0]; // 找到head节点
var s = document.createElement("script"); // 创建一个script标签
s.src = url; // 设置一个src属性
head.appendChild(s); // 插入标签到head节点中
}
2、事件驱动javascript
2.1 将事件处理函数绑定到目标对象的属性上
window.onload = function(){};//1
var btn = document.getElementById('button');//2
btn.onclick = function(){
....
}
function readS(){
.....
}
request.onreadystatechange = readS();//3
以上三种是比较常见的
2.2、事件绑定方式(事件监听器)
非IE下使用
window.addEventListener('load',function(){},false);
IE下
window.attachEvent('load',function(){});
3、onload文档结构加载完成后执行一个函数
// 注册一个函数用来在文档加载完成时执行
// 如果文档加载完成,异步运行一个函数
function onLoad(f) {
if (onLoad.loaded) // 如果文档已经加载完成
window.setTimeout(f, 0); // 放入队列尽快执行
else if (window.addEventListener) // 绑定事件监听函数
window.addEventListener("load", f, false);
else if (window.attachEvent) //IE8以下执行
window.attachEvent("onload", f);
}
// 设置一个标记位用来确定文档是否加载完成
onLoad.loaded = false;
//注册一个load函数设置加载标记
onLoad(function() { onLoad.loaded = true; });
4、javascript时间线执行顺序
4.1 web浏览器创建document对象,并且开始解析web页面,解析html元素和他们的文本内容后添加element元素和text文本到文档中!
在这个阶段的document.readyState属性的值是loading.
4.2 当html解析器遇到script没有设置async和defer的时候,它把元素添加到文档中,然后执行行内或外部脚本。这些脚本会同步执行,并且在脚本下载和执行时候。解析器会暂停解析。
这样脚本就可以用documen.write()方法将内容插入到页面中。解析器恢复时候这些内容会成为文档中的一部分,
4.3 当html结构设置了script没有设置async的时候,它开始下载脚本文件,并且继续解析文档。脚本会在它下载完成后尽快执行,但是解析器不会停下来等他下载完成。异步脚本禁止使用documen.write()
这种方法。
4.4 当文档解析完成后document.readyState属性的值是interactive.
4.5 所有defer脚本会按照他们在文档中出现的顺序依次执行,这时候异步脚本也可能会在这个时候执行,延迟脚本可以访问完整的文档树结构,禁止使用document.weite()
4.6 浏览器在document上触发DOMContentLoaded事件。这标志着脚本从同步执行变成事件驱动阶段,注意的是这个时候异步脚本可能还会执行。
4.7 这个时候文档结构解析完成,但是浏览器可能还在等待其他内容载入,如图片。当所有这些完成载入的时候并且异步脚本完全载入和执行,document.readyState属性的值是complete.web浏览器触发window对象上的onload事件!
4.8 从此刻起会调用异步事件,以异步响应用户的输入,网络,计时器等!
5、IE条件注释
<!--[if IE 5]>
仅IE5.5可见
<![endif]-->
<!--[if gt IE 5.5]>
仅IE 5.5以上可见
<![endif]-->
<!--[if lt IE 5.5]>
仅IE 5.5以下可见
<![endif]-->
<!--[if gte IE 5.5]>
IE 5.5及以上可见
<![endif]-->
<!--[if lte IE 5.5]>
IE 5.5及以下可见
<![endif]-->
<!--[if !IE 5.5]>
非IE 5.5的IE可见
<![endif]-->
下面的代码是在非IE浏览器下运行的条件注释
<!--[if !IE]><!--> 您使用不是 Internet Explorer <!--<![endif]-->
<!--[if IE 6]><!--> 您正在使用Internet Explorer version 6或者 一个非IE 浏览器 <!--<![endif]-->
6、同源策略
在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略)。
这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容。
所谓同源是指,域名,协议,端口相同。
6.1 不严格的同源策略
同源策略会给那些使用多个子域名的网站带来麻烦,例如a.home.com要访问b.home.com或者访问c.sz.home.com的域名的时候就会受到
同源策略的限制。
为了解决这个问题可以采用document.domain的属性,默认情况下domain存放的是载入文档的服务器的主机名。可以设置这个属性不过使用的字符串
必须具有有效的域前缀或者它自己本身。domain的属性必须有一个点“.”不可以设置如com或者cn。例如上面的a.home.com可以设置成home.com,c.sz.home.com
可以设置成sz.home.com或者home.com.
当我们设置a.home.com、b.home.com、c.sz.home.com的domain为home.com这个时候三者就可以进行数据通讯了。
6.2 不严格的同源策略第二项
这个标准已经标准化,这个标准草案用新的Origin请求头和新的Access-Control-Allow-Origin响应头来扩展http.它允许服务器显式的列出源。或使用通配符来匹配所有的源
来请求文件。
6.3 不严格的同源策略第三项
跨文档消息,允许来自一个文档的脚本可以传递文本消息到另一个文档里的脚本,而不管脚本的来源如何。调用window.postMessage()方法
可以异步的传递消息。

web浏览器中javascript的更多相关文章

  1. 第十一章:WEB浏览器中的javascript

    客户端javascript涵盖在本系列的第二部分第10章,主要讲解javascript是如何在web浏览器中实现的,这些章节介绍了大量的脚本宿主对象,这些对象可以表示浏览器窗口.文档树的内容.这些章节 ...

  2. JavaScript权威指南--WEB浏览器中的javascript

    知识要点 1.客户端javascript window对象是所有客户端javascript特性和API的主要接入点.它表示web浏览器的一个窗口或窗体,并且可以用window表示来引用它.window ...

  3. 浏览器中Javascript单线程分析

    线程这个特性对于一门语言环境来说是尤其重要的,在Java/C++环境下都提供了多线程API操作. 但在Javascript中据说代码执行时单线程的,大量计算的逻辑会阻塞浏览器HTML渲染,但setTi ...

  4. web浏览器中的javascript -- 2

    在html里嵌入javascript: 在html文档里嵌入客户端javascript代码有4种方式: 1.内联,放置在<script>和</script>标签对之间; 2.放 ...

  5. 浏览器中JavaScript执行原理

    本章我们讨论javascript在浏览器中是如果工作的,包括:下载.解析.执行的全过程.javascript的这些讨人嫌的地方我们是知道的: i.需要串行下载 ii.需要解析 iii.需要串行执行 而 ...

  6. websocketj--随时随地在Web浏览器中操作你的服务端程序

    0 - 有没有觉得Linux标准终端界面输入输出枯燥无味? 1 - 什么?vmstat命令的输出数据不直观?有没有想过能够可视化该命令的输出? 2 - 尝试过用浏览器操作Windows中的cmd吗? ...

  7. 谷歌开发人员在现代Web浏览器中发现严重跨域漏洞

    Google谷歌研究人员在现代网络浏览器中发现了一个严重漏洞,该漏洞可能允许您访问的网站从您登录同一浏览器的其他网站窃取您的在线帐户的敏感内容. 由Google谷歌Chrome的开发者支持者Jake发 ...

  8. 在web浏览器中判断app是否安装并直接打开

    最近公司App产品在运营推广上有一个需求,就是要求可以让用户在访问我们的推广网页时,就可以判断出这个用户手机上是否安装了我们的App,如果安装了则可以直接在网页上打开,否则就引导用户前往下载.从而形成 ...

  9. web浏览器中的javascript 1

    Html 文档嵌入客户端有4种方式. 1. 内联.放置在<script>和</script>标签对之间. 2.放置在<script>标签的src属性指定的外部文件中 ...

随机推荐

  1. NGUI 3.5课程(五岁以下儿童)button-图片切换

    然后,我们去了一个样本,做一个button画面切换. 特征,像球员"开始"和"暂停". 写TestButton.cs脚本: using UnityEngine; ...

  2. JS添加节点方法与JQuery添加节点方法的比较及总结

    原生JS添加节点方法与JQuery添加节点方法的比较及总结   一.首先构建一个简单布局,来供下边讲解使用 1.HTML部分代码: <div id="div1">div ...

  3. MVC 定义JsonpResult实现跨域请求

    MVC 定义JsonpResult实现跨域请求 1:原理 在js中,XMLHttpRequest是不能请求不同域的数据,但是script标签却可以,所以可以用script标签实现跨域请求.具体是定义一 ...

  4. JavaEE(18) - JPA原生SQL查询和存储过程

    1. 使用原生SQL执行查询 2. 映射原生SQL查询的结果集 3. 使用原生SQL查询执行实体查询 4. 命名原生SQL查询 5. 在JPQL查询中调用存储过程

  5. 【Python】Python的urllib模、urllib2模块的网络下载文件

    因为需要从一些下载一个页PDF文件.但是需要下载PDF有数百个文件,这是不可能用人工点击下载.只是Python有相关模块,所以写一个程序PDF文件下载,顺便熟悉Python的urllib模块和ulrl ...

  6. [Shell]输入參数

    获取shell脚本的输入參数,而且推断得到的參数. #!/bin/bash #title: testPT.sh #atuhor: orangleliu #date: 2014-08-08 #desc: ...

  7. OS和android游戏纹理优化和内存优化(cocos2d-x)

    注:原文地址不详! 1.2d游戏最占内存的无疑是图片资源. 2.cocos2d-x不同平台读取纹理的机制不同. ios以下使用CGImage,android和windows下是直接调用png库.我測试 ...

  8. mysql 的load data infile要使用

    LOAD DATA INFILE从文本文件中读出的声明以极高的速度到表. 1.基本语法 LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'fi ...

  9. webkit 子资源加载过程

    从主控文档和子资源表单的页面.描述框架记叙文页主文档,布局.子元素.包含图片.CSS.JS等.为了显示网页,先要把资源载入到内存. 载入就是指把须要的资源载入到内存这一过程. Webkit用到非常多缓 ...

  10. 【高德地图API】如何制作自己的旅游地图?

    原文:[高德地图API]如何制作自己的旅游地图? “旅行的梦想并不遥远,只要一颗流浪四方的心.”——唐人立. 最早认识唐人立的时候,他还是大二的学生.他独自完成了“南京20年规划地图”.几年前,他完成 ...