Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

bigkoa

Package Overview
Dependencies
Maintainers
3
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bigkoa - npm Package Compare versions

Comparing version 0.1.3 to 0.1.4

79

history.md
# 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

2

package.json
{
"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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc