美文网首页
Web - API (事件,Ajax,存储)-面试题

Web - API (事件,Ajax,存储)-面试题

作者: jrg陈咪咪sunny | 来源:发表于2017-12-07 18:01 被阅读0次

一、事件

1.编写一个通用的事件监听函数

 1 function bindEvent(elem, type, selector, fn) {
 2     if(fn == null) {
 3         fn = selector
 4         selector = null
 5     }
 6     elem.addEventListener(type,function(e) {
 7         var target
 8         if(selector) {
 9             target = e.target
10             if(target.matches(selector)) {
11                 fn.call(target, e)
12             }
13         } else {
14             fn(e)
15         }
16     })
17 }

2.事件冒泡流程

1)DOM树形结构

2)事件冒泡

3)阻止冒泡

4)冒泡的应用

3.对一个无限下拉加载图片的页面,如何给每一个图片绑定事件?

使用代理

二、ajax

1.手动编写一个ajax,不依赖第三方库

(无论什么复杂的ajax的封装,都是依照这个原理形式做的)

1 var xhr = new XMLHttpRequest()
2 xhr.open("GET","/api",false)  
3 xhr.onreadystatechange = function(){
4     if(xhr.readyState == 4 && xhr.status == 200) {
5         alert(xhr.responseText)
6     }
7 }
8 xhr.send(null)

<pre>readyState == 0  (未初始化),还没调用send()方法
         1  (载入),已调用send()方法,正在发送
         2  (载入完成),send()方法执行完成,已经接受到全部形影内容
         3  (交互),正在解析相应内容
         4  (完成),响应内容解析完成,可以在客户端调用</pre>

status == 2xx - 表示成功处理请求,如200

3xx - 需要重定向,浏览器直接跳转

4xx - 客户端请求错误,如404

5xx - 服务器端错误,如504(服务端连接数据库超时)

2.跨域

有三个标签允许跨域加载资源:<img src="xxx" > <link href="xxx" /> <script src="xxx"></script>

解决跨域方法:

1)JSONP实现原理

服务器可以根据请求动态生成一个不存在的文件返回

window.callback = function(data) {

//这是我们跨域得到信息

console.log(data)

}

2)服务器端设置http header

另外一个解决跨域的解决方法需要服务器来完成

1 //不同的后盾语言的写法可能不一样
2 
3 //第二个参数填写允许跨域的域名城,不建议直接写*
4 response.setHeader("Access-Control-Allow-Origin", "http://a.com,http://b.com");
5 response.setHeader("Access-Control-Allow-Headers", "X-Requested-With");
6 response.setHeader("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
7 
8 //接受跨域的cookie
9 response.setHeader("Access-Control-Allow-Credentials", "true");

三、存储

1.cookie,sessionStorage和localStorage的区别

1)容量:cookie只有4kb,而sessionStorage和localStorage最大容量5M

2)是否会携带到ajax中:cookie每次都会带,而sessionStorage和localStorage不会

3)API易用性:cookie要自己封装且较麻烦,而sessionStorage和localStorage,getItem,setItem基本上就能搞定

相关文章

  • Web - API (事件,Ajax,存储)-面试题

    一、事件 1.编写一个通用的事件监听函数 2.事件冒泡流程 1)DOM树形结构 2)事件冒泡 3)阻止冒泡 4)冒...

  • JavaScript 存储对象

    Web 存储 API 提供了 sessionStorage (会话存储) 和 localStorage(本地存储)...

  • H5 : web storage api

    web storage api:web-storage是一些关于web存储的api集. H5的web storag...

  • Javascript存储对象

    JavaScript存储对象 Web 存储 API 提供了 sessionStorage (会话存储) 和 loc...

  • jquery作品知识点记录

    JavaScript 存储对象 Web 存储 API 提供了 sessionStorage (会话存储) 和 lo...

  • JS-Web-Api面试题

    这篇主要是说JS的一些api,其中包括DOM,BOM,事件,ajax,存储,都是实际开发会用到的,但是这些都是JS...

  • Web存储API、Web Socket

    说到web数据存储,我们可能会想到cookie,cookie毕竟存放的数据有限,在一个大数据时代,cookie已经...

  • Web存储API与 Web socket

    Web存储API 对于任何程序来说,能够实现数据存储是必备功能之一,并且在需要的时候能够提供数据。但在过去的Web...

  • Ajax调用Web Api Post

    使用Ajax调用Web Api Post需要注意的问题如下。 首先是跨域访问的问题,需要在Api端设置: 注意需要...

  • AJAX

    AJAX 概述 背景 “JavaScript 对我们而已能力有限”,我们目前所了解到的 Web 所提供的 API ...

网友评论

      本文标题:Web - API (事件,Ajax,存储)-面试题

      本文链接:https://www.haomeiwen.com/subject/fudjixtx.html