准备接收大前端形法的考验吧!?每日5题,直击你的心里 ~~
仓库地址:https://github.com/RiversCoder/fontend-question-ten-everyday前端
- 如何计算白屏、首屏时间?
<head>
标签解析完就是白屏的结束时间点,在head
标签中先后打点,计算差值devtool
中的timeline
工具
- 什么是闭包?
- 什么是做用域链?
- ajax的实现,readyState中的五种状态分别表明什么含义?
var getXmlHttpRequest = function () { if (window.XMLHttpRequest) { //主流浏览器提供了XMLHttpRequest对象 return new XMLHttpRequest(); } else if (window.ActiveXObject) { //低版本的IE浏览器没有提供XMLHttpRequest对象 //因此必须使用IE浏览器的特定实现ActiveXObject return new ActiveXObject("Microsoft.XMLHTTP"); } }; var xhr = getXmlHttpRequest(); xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { //获取成功后执行操做 //数据在xhr.responseText } }; xhr.open("TYPE", "URL", true); xhr.send("");
状态码 | 表明的含义 |
---|---|
0 | 未初始化状态 初始化xhr 对象 |
1 | 准备发送状态 调用open |
2 | 已经发送状态 调用send |
3 | 正在接收状态 响应到HTTP 响应头部信息 |
4 | 响应完成状态 完成了HTTP 响应的接收 |
onload
方法
- 如何实现 jsonp?
src
属性上拼接发送的目的URL
以及callback
字符参数。GET
请求,获取cabback
参数,拼接好,返回数据。script
节点。