- 博客(15)
- 收藏
- 关注
原创 前端基础知识整理-杂记
一、同步、异步、阻塞、非阻塞同步与异步的区别在于通知机制。如果是应用程序主动向操作系统发送信息则为同步,如果是操作系统向应用程序推送数据,则为异步。也就是说二者的区别在于信息的获取是通过主动还是被动的方式。 阻塞和非阻塞的区别在于程序的等待状态。如果进行io操作时,发送请求后就立即返回,之后需要通过轮询的方式来获取io操作是否完成的信息,这种操作方式叫做非阻塞。如果进行io操作时,需要等待...
2018-07-13 16:44:30
258
原创 node初探之数据库MongoDB
一、node相关 node中包含一些基本的api,它懂得数据库网络层协议和其通信,并知道如何编码和解码存储的数据。连接数据库的方式,首先使用mongodb.server(ip,port)初始化服务器,之后使用new mongodb.Db(name,server).open()来连接数据库。接着建立集合,然后操作集合。...
2018-07-11 17:51:49
172
原创 node初探之buffer
通过on data获取到的chunk为buffer,如果编解码格式一致,则可以直接+=拼接,不然则用一个大buffer存储获取到的所有值,之后再进行转换操作。
2018-07-11 16:07:19
198
原创 node初探之代码共享
一、如何将node中的代码运行在浏览器中 node中包含module,浏览器中不存在,可以在立即执行函数中构建虚拟的module对象,此对象中包含exports属性,最后将module对象的exports属性值赋值给window对象的某一属性,这样通过这个全局变量就可以调用之前定义的方法,而且最后会释放module变量。 对于浏览器引擎中不具备的API,可以通过扩展原型(比如Funct...
2018-07-11 13:36:38
224
原创 node初探之测试
一、测试策略 node中自带assert模块,主要用于单元测试。此模块的作用是检查判断条件是否通过,如果不通过则抛出AssertionError异常。assert提供多个判断方法,比如ok,equal deepEqual等方法。二、测试组合 expect提供一系列基础api,例如toBe match include等方法可以实现快速条件判断,简化测试。 mocha是一个测试框架,...
2018-07-11 11:17:58
316
原创 node初探之express
一、基础概念 路由:web服务器和浏览器之间交互的任务都是通过url和method完成的。这两者的组合有时成为路由。可以使用get post put等方法定义路由。二、核心特性 可以对环境设置进行管理,可以修改生产环境下是否将模板缓存view cach等。可以在express中使用模板引擎,配置views view engine。 express对请求和响应的对象提供了扩展来简化...
2018-07-10 20:28:43
151
原创 node初探之connect
一、静态文件托管功能的实现 可以通过文件系统API中的createReadStream方法结合pipe方法,将文件系统流接到http响应流中。二、connect的使用 connect的主要作用是one by one调用各中间件,来对请求和响应的数据进行处理,它的职责是进行中间件管理。通过use方法将所需的中间件添加到connect()中间件队列中,next方法用于交给其他中间件处理。请...
2018-07-10 19:08:43
296
原创 node初探之http
http基于请求和响应,在nodejs中对应的为http.ServerRequest http.ServerResponse创建的对象。http协议的目的是用于文档交换。在http头信息中包含对请求和响应内容的附加描述,例如Content-Type就是对消息类型对描述,如果不加此描述信息,则默认将发送的内容解析为text/plain类型。一、流的使用 在node中Transfer-E...
2018-07-10 11:51:49
156
原创 vue 虚拟dom源码分析
watcher对象对视图的更新不是实时更新的,会将watcher对象存在一个队列中,在下个tick时更新异步更新视图,完成性能优化。watcher是通过调用updateComponent方法来达到更新视图的目的,updateComponent方法是执行vm._update(vm._render(),hydrating),_render函数会返回一个新的Vnode节点,传入_update中与旧的VN...
2018-04-23 15:52:00
846
原创 vue数据的双向绑定源码分析
VUE中的数据双向绑定是通过数据劫持的方式实现的,核心的便是object.defineProperty(),它内部分为三个部分:observer 可以递归地监听对象上的所有属性,当属性改变时触发相应的watcher。watcher 观察者,当监听的数据值修改时,执行相应的回调函数,更新模板内容。dep 连接observer watcher,每一个observer对应一个dep,内部维护一个数组,保...
2018-04-13 09:29:15
1348
原创 jquery源码初探-jquery写法优点以及事件机制说明
jquery其实是利用闭包的原理,用立即执行函数进行包裹,模仿块级作用域,避免了全局变量的污染。另外此函数最终返回的是jQuery,它是一个内部定义的函数,这样的作用是将内部变量以及实现方法隐藏,仅暴露jQuery对象以供调用。if ( !noGlobal ) { window.jQuery = window.$ = jQuery;}return jQuery;} );事件机制:通过b...
2018-03-22 11:31:03
267
原创 springmvc 本地jsp发送ajax请求 前后端合体
1.本地jsp文件发送ajax请求到本程序的服务器端时,可以使用ajax请求,注意有ajax请求时不可以同时使用form表单。url地址为“/ ***/**”,由于都是本地localhost,则不必添加ip地址。2.本地发送请求后,需要在springmvc工程中添加json相关jar包:jackson-core jackson-databind,在springmvc。xml文件中添加下列代码,
2017-09-13 16:23:42
1058
原创 利用gulp添加.js?v=738575这种类型的版本号
**利用gulp添加.js?v=738575这种类型的版本号 1。登录nodejs官网(http://nodejs.org/),下载安装常用版本即可,直接点击下一步就可以安装成功。 2。安装完成后用cmd测试是否安装成功。在cmd下输入node -v 以及npm -v,若出现版本号则安装成功。之后cd 工程目录,npm init,之后输入文件配置,没有的可以不写,生成package.json文件
2017-08-28 15:26:27
1194
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人