博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多益网络前端面试反思题
阅读量:4101 次
发布时间:2019-05-25

本文共 1368 字,大约阅读时间需要 4 分钟。

一、jsonp对象

http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html

JSON和JSONP虽然只有一个字母的差别,但其实他们根本不是一回事儿:JSON是一种数据交换格式,而JSONP是一种依靠开发人员的聪明才智创造出的一种非官方跨域数据交互协议。

1、一个众所周知的问题,Ajax直接请求普通文件存在跨域无权限访问的问题,甭管你是静态页面、动态网页、web服务、WCF,只要是跨域请求,一律不准;

2、不过我们又发现,Web页面上调用js文件时则不受是否跨域的影响(不仅如此,我们还发现凡是拥有"src"这个属性的标签都拥有跨域的能力,比如<script>、<img>、<iframe>);

3、于是可以判断,当前阶段如果想通过纯web端(ActiveX控件、服务端代理、属于未来的HTML5之Websocket等方式不算)跨域访问数据就只有一种可能,那就是在远程服务器上设法把数据装进js格式的文件里,供客户端调用和进一步处理;

4、恰巧我们已经知道有一种叫做JSON的纯字符数据格式可以简洁的描述复杂数据,更妙的是JSON还被js原生支持,所以在客户端几乎可以随心所欲的处理这种格式的数据;

5、这样子解决方案就呼之欲出了,web客户端通过与调用脚本一模一样的方式,来调用跨域服务器上动态生成的js格式文件(一般以JSON为后缀),显而易见,服务器之所以要动态生成JSON文件,目的就在于把客户端需要的数据装入进去。

6、客户端在对JSON文件调用成功之后,也就获得了自己所需的数据,剩下的就是按照自己需求进行处理和展现了,这种获取远程数据的方式看起来非常像AJAX,但其实并不一样。

7、为了便于客户端使用数据,逐渐形成了一种非正式传输协议,人们把它称作JSONP,该协议的一个要点就是允许用户传递一个callback参数给服务端,然后服务端返回数据时会将这个callback参数作为函数名来包裹住JSON数据,这样客户端就可以随意定制自己的函数来自动处理返回数据了。

如果对于callback参数如何使用还有些模糊的话,我们后面会有具体的实例来讲解。

二、冒泡

https://juejin.im/entry/575972947db2a200541bed0b
当事件捕获和事件冒泡一起存在的情况,事件又是如何触发呢。
  • 对于非target节点则先执行捕获在执行冒泡

  • 对于target节点则是先执行先注册的事件,无论冒泡还是捕获

三、捕捉异常

https://zhuanlan.zhihu.com/p/34882807

try catch

通常,为了判断一段代码中是否存在异常,我们会这一写:

try {
var a = 1; var b = a + c;} catch (e) {
// 捕获处理 console.log(e); // ReferenceError: c is not defined}

使用try catch能够很好的捕获异常并对应进行相应处理,不至于让页面挂掉,但是其存在一些弊端,比如需要在捕获异常的代码上进行包裹,会导致页面臃肿不堪,不适用于整个项目的异常捕获。

你可能感兴趣的文章
二叉搜索树的这些你都会了吗?
查看>>
Spring Boot 2.0 迁移指南
查看>>
最近学到的java限流知识
查看>>
面试加分项-HashMap源码中这些常量的设计目的
查看>>
面试官:你能谈谈Dubbo SPI扩展原理吗?
查看>>
讲真,下次打死我也不敢随便改serialVersionUID了
查看>>
Spring、Spring MVC、MyBatis 整合文件配置详解
查看>>
一份还热乎的蚂蚁金服面经(已拿Offer)!附答案
查看>>
设计撑百万并发的数据库架构
查看>>
Java集合必会14问(精选面试题整理)
查看>>
这样讲 SpringBoot 自动配置原理,你应该能明白了吧
查看>>
消灭 Java 代码的“坏味道”
查看>>
这代码写的,狗屎一样 (下)
查看>>
到底如何设置 Java 线程池的大小?
查看>>
如何优雅的导出Excel
查看>>
Redis最常被问到知识点总结
查看>>
IntelliJ IDEA 快捷键终极大全,速度收藏
查看>>
GoF之装饰模式遇见王者荣耀、刺激战场
查看>>
为什么ConcurrentHashMap的读操作不需要加锁?
查看>>
删库别急着跑路,这几步神恢复!
查看>>