(1) js延迟加载的方式有哪些? defer和async、动态创建DOM方式(创建script,插入到DOM中,加载完毕后callBack)、按需异步载入js defer和async、动态创建DOM方式(用得最多)、按需异步载入js defer,只支持IE async:true 创建script,插入到DOM中,加载完毕后callBack
(2)如何解决跨域问题? jsonp、 document.domain+iframe、window.name、window.postMessage、服务器上设置代理页面 jsonp的原理是动态插入script标签 Jsonp、iframe、window.name、window.postMessage、服务器上设置代理页面
(3) ajax 是什么? 异步javascript和XML,是指一种创建交互式网页应用的网页开发技术。通过后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
(4) 页面生命周期:DOMContentLoaded,load,beforeunload,unload
DOMContentLoaded —— 浏览器已完全加载 HTML,并构建了 DOM 树,但像 和样式表之类的外部资源可能尚未加载完成。
load —— 浏览器不仅加载完成了 HTML,还加载完成了所有外部资源:图片,样式等。
beforeunload/unload —— 当用户正在离开页面时。
每个事件都是有用的:
DOMContentLoaded 事件 —— DOM 已经就绪,因此处理程序可以查找 DOM 节点,并初始化接口。
load 事件 —— 外部资源已加载完成,样式已被应用,图片大小也已知了。
beforeunload 事件 —— 用户正在离开:我们可以检查用户是否保存了更改,并询问他是否真的要离开。
unload 事件 —— 用户几乎已经离开了,但是我们仍然可以启动一些操作,例如发送统计数据。
(5) document.ready和onload的区别——JavaScript文档加载完成事件 页面加载完成有两种事件,一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件),二是onload,指示页 面包含图片等文件在内的所有元素都加载完成。(可以说:ready 在onload 前加载!!!)
我的理解: 一般样式控制的,比如图片大小控制放在onload 里面加载; 而:jS事件触发的方法,可以在ready 里面加载; jQ的人很多人都是这么开始写脚本的:
$(function(){
// do something
}); 其实这个就是jq ready()的简写,他等价于:
().ready(function(){ //do something })