1. 服务端主动push资源的技术有哪些?
- websocket
- event source,SSE
2. 浏览器内不同标签页如何通信?
- iframe+postMessage(可跨域)
- localStorage(同源)
- cookie
- Window.open(同源)
- SSE
3. 跨域解决方案?
- CORS
- node中间服务器
- Nginx反向代理
- jsonp
- iframe+postMessage
- iframe+document.domain
- window.name
一个窗口生命周期内,载入的所有页面共同享有window.name,只能是字符串,只有一个2mb左右,但是持久存在
- webSorcket
4. 浏览器的同源策略了解过吗?
- 获取非本页面信息?需要满足同协议、同ip地址,同端口。
- why?防止被盗取敏感信息。
5. 可以跨域的标签有哪些?
<script>/<link>/<img>
都可以通过get
方法获取其他网站的静态资源
6. jsonp原理以及实践
- 利用可以跨域的标签来进行get请求,携带参数callback=fnName,如果利用script标签,后台返回的就应该是js格式内容的字符串,fnName函数并携带参数。
https://www.cnblogs.com/itliucheng/p/4917518.html
7. CORS简单请求的要求?
- 请求方式:get/post/head
- 头信息:不超出下字段accept,accept-language,content-language,last-event-id,content-typt:application/x-www-form-urlencoded、multipart/form-data、text/plain
8. url的组成是什么?
- 协议://主机名:端口/路径?查询参数1&参数2#锚
9. 计算机常用端口以及场景?
80:http
443:https
21:ftp
22:ssh/重定向
10. 浏览器对象有哪些及其方法?
- window
- location
- history
- navigation/screen
11. 浏览器正常加载网页的流程是怎样的?
12. js文件的下载和执行顺序?
13. 优雅降级和渐进增强
优雅降级
先完成所有功能,再去兼容低版本浏览器,做内容的删减。相当于向下兼容,做减法和兼容。
渐进增强
先在低版本浏览器上完成基本要求,在逐渐增加高级交互效果等功能。相当于向上兼容,做加法和升级。