##单体模式(Singleton Pattern)
单体模式最简单的结构:
其作用:
1.最基本最有用的模式之一
2.划分逻辑单元, 如命名空间
其缺点:强耦合
1 | var Singleton = { |
为了解决表面私有成员实现真正私有成员单体模式更好的结构是(如下又称:模块模式[module pattern]):
1 | var Singleton = (function(){ |
那时候,车,马,朝阳...
##单体模式(Singleton Pattern)
单体模式最简单的结构:
其作用:
1.最基本最有用的模式之一
2.划分逻辑单元, 如命名空间
其缺点:强耦合
1 | var Singleton = { |
为了解决表面私有成员实现真正私有成员单体模式更好的结构是(如下又称:模块模式[module pattern]):
1 | var Singleton = (function(){ |
一个Nodejs MVC jcmvc的使用示例框架,jcmvc可以用来开发基于Nodejs的MVC模式的Web应用 或者 作为前端的前端模块化组织的web服务器
引入依赖jcmvc
: npm install jcmvc
jcmvc的npm地址:https://www.npmjs.com/package/jcmvc
jcmvc的example的使用实例: jc-mvc
1 | git clone git@github.com:ccjoe/jc-mvc.git |
require
与UMD
AMD:
AMD以浏览器为第一(browser-first)
的原则发展,选择异步加载模块。它的模块支持对象(objects)、函数(functions)、构造器(constructors)、字符串(strings)、JSON等各种类型的模块。因此在浏览器中它非常灵活。
CMD:
CommonJS module以服务器端为第一(server-first)
的原则发展,选择同步加载模块。它的模块是无需包装的(unwrapped modules)且贴近于ES.next/Harmony的模块格式。但它仅支持对象类型(objects)模块。
UMD:
这迫使一些人又想出另一个更通用格式 UMD(Universal Module Definition)
。希望提供一个前后端跨平台的解决方案。
UMD的实现很简单,先判断是否支持NodeJS模块格式(exports是否存在),存在则使用NodeJS模块格式。
再判断是否支持AMD(define是否存在),存在则使用AMD方式加载模块。前两个都不存在,则将模块公开的全局(window或global)。
一个组件包含以下要素:
javascript常见正则匹配场景 的匹配分析。
###贪婪模式与非贪婪模式
/./
/.?/
/.+/
/.+?/
假设为<img src="http://ccjoe.github.io/test.png">
要满足的条件应该是:
<img>
标签/<img\b[^>]*src\s*=\s*"(http:\/\/ccjoe\.github\.io\/([^>"]*))"[^>]*>/g
一个Web应用的性能分析包含服务端的性能分析及浏览器端的性能分析,这里只罗列相关浏览器端(前端)的性能分析。
总体来讲:终端用户响应时间
= 页面下载时间 + 服务器响应时间 + 浏览器处理及渲染时间
= 页面大小 / 网络带宽 + (网络延迟 × HTTP 请求数)/ 并发度 + 服务器响应时间 + 浏览器处理及渲染时间
http://www.ibm.com/developerworks/cn/lotus/web20-perf-2/
并行下来即有以下因素影响浏览器响应时间:
页面下载时间的模型涉及三方面:
根据以上要素总结的优化点:
##冒泡排序(BUBBLE SORT)
数组相邻位置对比大小,左<右则交换位置,
冒泡排序遍历->
第一轮最大的将冒泡至最右边, 遍历次数:arr.length
第二轮,第二大将至最右边, 遍历次数:arr.length-1
依次…
1 | //冒泡排序 |