Comparing version 0.1.3 to 0.1.4
# History | ||
## Version | ||
- v1.3.12 | ||
- 修正payload问题,支持自定义属性 | ||
- duck type | ||
- 修改catchFn阻塞问题 | ||
- v.1.3.10 | ||
- 重构mode部分,讲引用移到mode/index.js里,内敛 | ||
- for sonar | ||
- refact bigview write api | ||
- 移除无用的this.layoutHtml | ||
- 移除动态布局 | ||
- 将req和res移除到base里 | ||
- 重构biglet赋值比较绕的问题 | ||
- 修复,之前的parallel模式渲染问题,已测试 | ||
- 移除显式的比较true | ||
- 修复render模式输出 | ||
- add pipeline mode test | ||
- v1.3.9 | ||
- [x] 使用bluebird作为global.Promise,避免外部错误 | ||
- [x] 去掉bigpipe.debug = false;使用环境变量BIGVIEW_DEBUG | ||
- [x] bigview && biglet conosle.log("BIGVIEW" + err) 增加模块标识,便于日志记录 | ||
- [x] this.tpl = 'tpl/index';干掉,设为默认值 | ||
- [x] biglet // custom error function | ||
- [x] 子模块的顺序,也可以指定pagelet1.mode = 'render' | ||
- [x] 修复之前mode遗留问题,以前的render模式,仍然是先输出布局的,这是不对的,已修改 | ||
- (待处理)this.root = __dirname;有疑问?暂无解决方案,需要思考 | ||
- (待处理)当没有数据的时候,不显示改模块,目前的做法是 return Promise.reject(); 语义上怪 | ||
- v1.2.8 (2017年1月11日,i5ting) | ||
- bigview支持错误模块显示,仅限于布局之前 | ||
- Pagelet里触发其他模块 | ||
## Desgin | ||
### v1 | ||
- 实现基本功能(pipeline管线模式) | ||
### v2 | ||
- pipeline管线模式 | ||
- 多种布局 | ||
- 实现pagelet嵌套 | ||
- 生命周期回调 | ||
### v3 | ||
- 增加3种模式mode | ||
- 考虑加入[joi](https://github.com/hapijs/joi),对pagelet.data进行校验 | ||
- 采用eventemitter收集数据,self.ower.emit(),可以兼顾内嵌pagelet | ||
- 子流程其实也可以考虑顺序或并行,只是意义多大 | ||
BigPipe的三种模式: | ||
- common一次渲染模式:即普通模式,支持搜索引擎,用来支持那些不支持JS的客户端。 | ||
- 并行 | ||
- pipeline管线模式:即并行模式,并行请求,并即时渲染。(已实现) | ||
- parallel并行模式:并行请求,但在获得所有请求的结果后再渲染。 | ||
维度 | ||
- 依次Promise.reduce | ||
- 随机Promise.all | ||
- 写入 | ||
- 不写入(暂存,稍后一起写入) | ||
可能性 | ||
- 依次写入(性能第3) | ||
- 依次不写入(性能第4) | ||
- 随机写入(性能第1) | ||
- 随机不写入(性能第2) | ||
核心流程 | ||
- 布局:是否立即写入 | ||
- pagelets处理:各种bp模式 | ||
- end:检查缓存,并end结束 | ||
- 0.1.3 | ||
- 修复没有 layout 的时候正常渲染 | ||
- 支持 cacheLevel |
{ | ||
"name": "bigkoa", | ||
"version": "0.1.3", | ||
"version": "0.1.4", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "main": "src/index.js", |
@@ -59,3 +59,3 @@ 'use strict' | ||
if (Pagelet.domid && Pagelet.root) { | ||
if (Pagelet.domid && Pagelet.tpl) { | ||
pagelet = Pagelet | ||
@@ -188,3 +188,3 @@ } else { | ||
if (cacheLevel2) { | ||
debug('Use cache level 2') | ||
console.log(cacheLevel2) | ||
self.write(cacheLevel2, self.modeInstance.isLayoutWriteImmediately) | ||
@@ -237,3 +237,2 @@ return resolve(cacheLevel2) | ||
debug('BigView end') | ||
let self = this | ||
@@ -243,3 +242,3 @@ | ||
return self.after().then(function () { | ||
self.res.end(Utils.end()) | ||
self.res.end(Utils.end() + (self.endTagString || '\n</body>\n</html>')) | ||
self.done = true | ||
@@ -246,0 +245,0 @@ return true |
@@ -9,5 +9,4 @@ const Benchmark = require('benchmark') | ||
// add tests | ||
suite.add('No Cache', function() { | ||
suite.add('No Cache', function () { | ||
const bigView = new BigView(ctx, { | ||
@@ -19,3 +18,3 @@ layout: PageletExample | ||
}) | ||
.add('Cache Level 1', function() { | ||
.add('Cache Level 1', function () { | ||
const bigView = new BigView(ctx, { | ||
@@ -28,3 +27,3 @@ layout: PageletExample, | ||
}) | ||
.add('Cache Level 2', function() { | ||
.add('Cache Level 2', function () { | ||
const bigView = new BigView(ctx, { | ||
@@ -39,9 +38,9 @@ layout: PageletExample, | ||
// add listeners | ||
.on('cycle', function(event) { | ||
console.log(String(event.target)); | ||
.on('cycle', function (event) { | ||
console.log(String(event.target)) | ||
}) | ||
.on('complete', function() { | ||
console.log('Fastest is ' + this.filter('fastest').map('name')); | ||
.on('complete', function () { | ||
console.log('Fastest is ' + this.filter('fastest').map('name')) | ||
}) | ||
// run async | ||
.run({ 'async': true }); | ||
.run({ 'async': true }) |
@@ -24,3 +24,3 @@ const nunjucks = require('nunjucks') | ||
render: function (tpl, data, fn) { | ||
if(/\.nj$/.test(tpl)) { | ||
if (/\.nj$/.test(tpl)) { | ||
return nunjucks.render(tpl, data, (err, html) => { | ||
@@ -27,0 +27,0 @@ fn(err, html) |
@@ -20,2 +20,10 @@ import test from 'ava' | ||
test('test utils.lurMapCache', t => { | ||
const lurMapCache = utils.lurMapCache | ||
lurMapCache.init(10) | ||
lurMapCache.set('a', 1) | ||
t.is(lurMapCache.get('a'), 1) | ||
lurMapCache.delete('a') | ||
}) | ||
test('test utils.log()', t => { | ||
@@ -22,0 +30,0 @@ utils.log() |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
2909
250930