SPA-1
  • 原生JS应用
  • H5、css3、canvas、svg
  • 数据库:数据存储、数据检索
  • 服务器:认证、授权、验证
  • 客户端:HTML渲染、装饰性JS、业务逻辑、HTML生成

  • 操作DOM:Jquery

  • 历史管理和事件处理的插件:TaffyDB2
  • 服务端与客户端之间的消息传输:Socket.IO
  • 数据库:MongoDB,使用js原生的数据格式json来保存数据

  • 模块的编写:

  • 1、声明所有变量,包括模块的配置值和状态值
  • 2、声明需要操作的DOM(jquery)对象
  • 3、定义操作DOM的方法
  • 4、定义处理事件的回调方法
  • 5、加载模块的方法,参数应包含模块的父元素,过程包括填充模板、注册事件处理函数

  • js引擎在进入作用域时,会对代码分两轮处理。第一轮,生成函数执行环境对象,即初始化执行环境对象中的变量和函数;第二轮,执行环境对象。

  • 执行环境:执行环境由函数执行时发生的所有事物组成。它和函数声明是分离的,函数声明描述了当函数执行的时候会发生的事情。
  • 执行环境对象
  • 所有在函数中定义的变量和函数都是执行环境的一部分,在谈论函数的作用域时,执行环境也是其所指的一部分。
  • js引擎把声明和初始化的变量当作执行环境对象的属性。

  • js中的函数作用域时通过词法来划分的,意即在函数定义的时候作用域链就确定了。

  • 在执行环境中调用函数会创建一个新的嵌套的执行环境。
  • js引擎在执行环境对象中访问作用域内的变量,查找的顺序叫做作用域链。它和原型链一起描述了js访问变量和属性的顺序。
  • 通常我们所说的全局变量是执行环境顶层对象的属性,浏览器的顶层对象是window对象;nodejs中顶层对象是global。

  • 在js中,对象的构造函数和原型是分开设置的。方法Object.create作为new操作符的替代方案,使用它来创建js对象时,更像是基于原型的感觉。

  • 闭包是阻止垃圾回收器将变量从内存中移除的方法,使得在创建变量的执行环境的外面能够访问到该变量。

  • 使用jquery来发送ajax请求的方法,回调函数中的this执行ajax请求对象。

  • 编写模块的一般模式

  • 把静态配置值放在configMap对象中, module scope variables
  • 将在整个模块中共享的动态信息放在stateMap对象中, module scope variables
  • 将jquery集合缓存在jqueryMap对象中,jqueryMap缓存的用途是可以大大地减少Jquery对文档的遍历次数,能够提高性能。 module scope variables
  • 声明所有模块作用域内的其他变量,很多都是在之后赋值。 module scope variables
  • 将创建和操作页面元素的的函数放在"DOM Methods"区块中。DOM methods
  • 创建不和页面元素交互的函数, Utility Methods
  • 创建处理jquery事件的回调函数, Event handlers
  • 创建initModule公开方法,用于初始化模块。 Public Methods

  • jQuery事件处理程序返回值,当返回false时:

  • 阻止操作对象的默认行为,相当于调用 event.preventDefault()
  • 阻止冒泡,阻止该事件触发父DOM元素上的相同事件,相当于调用 event.stopPropagation()
  • 结束该事件处理程序的执行,不影响其他绑定该事件的事件处理程序的执行。如果不想执行后续的事件处理程序,可以调用event.preventImmediatePropagation()
learning
JSRUN前端笔记, 是针对前端工程师开放的一个笔记分享平台,是前端工程师记录重点、分享经验的一个笔记本。JSRUN前端采用的 MarkDown 语法 (极客专用语法), 这里只属于前端工程师。