cleanup and notes...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2022-08-24 23:47:42 +03:00
parent c2ee30502b
commit 773332436b
3 changed files with 24 additions and 22 deletions

View File

@ -1255,6 +1255,18 @@ object.Constructor('Page', BasePage, {
//--------------------------------------------------------------------- //---------------------------------------------------------------------
var getCachedProp = function(obj, name){
var that = obj
var value = obj.cache ?
obj.cache[name]
: object.parentProperty(CachedPage.prototype, name).get.call(obj)
value instanceof Promise
&& value.then(function(value){
that.cache = {[name]: value} })
return value }
var setCachedProp = function(obj, name, value){
return object.parentProperty(CachedPage.prototype, name).set.call(obj, value) }
// XXX this is good enough on the front-side to think about making the // XXX this is good enough on the front-side to think about making the
// cache persistent with a very large timeout (if set at all), but // cache persistent with a very large timeout (if set at all), but
// we are not tracking changes on the store-side... // we are not tracking changes on the store-side...
@ -1304,7 +1316,6 @@ object.Constructor('CachedPage', Page, {
// miss creating a subtree (ex: /tree), while matching // miss creating a subtree (ex: /tree), while matching
// /* to anything will give us lots of false positives... // /* to anything will give us lots of false positives...
if(key != path && deps.has(path)){ if(key != path && deps.has(path)){
//console.log('CACHE: DROP:', key)
delete this.cachestore[key] } } }, delete this.cachestore[key] } } },
checkCache: function(...paths){ checkCache: function(...paths){
@ -1341,26 +1352,19 @@ object.Constructor('CachedPage', Page, {
this.cache = null this.cache = null
return object.parentCall(CachedPage.prototype.__delete__, this, ...arguments) }, return object.parentCall(CachedPage.prototype.__delete__, this, ...arguments) },
/* XXX do we need to cache .raw???
// ...yes this makes things marginally faster but essentially
// copies the db into memory...
get raw(){
return getCachedProp(this, 'raw') },
set raw(value){
return setCachedProp(this, 'raw', value) },
//*/
get text(){ get text(){
var that = this return getCachedProp(this, 'text') },
/* XXX
console.log(
this.cache ?
'CACHED:'
: 'RENDER:',
this.path)
//*/
var text = this.cache ?
this.cache.text
: object.parentProperty(CachedPage.prototype, 'text').get.call(this)
text instanceof Promise
&& text.then(function(text){
that.cache = {text} })
return text },
set text(value){ set text(value){
object.parentProperty(CachedPage.prototype, 'text').set.call(this, value) }, return setCachedProp(this, 'text', value) },
}) })

View File

@ -663,7 +663,7 @@ module.MetaStore = {
// XXX TEST... // XXX TEST...
var CachedStore = var CachedStore =
module.CachedStore = { module.CachedStore = {
//__proto__: FileStoreRO, __proto__: MetaStore,
// format: // format:
// { // {

View File

@ -1,8 +1,6 @@
/********************************************************************** /**********************************************************************
* *
* *
* XXX BUG:
* await pwiki.get('/* /path').text -> '' (wrong)
* XXX NORMCACHE .normalize(..) cache normalized strings... * XXX NORMCACHE .normalize(..) cache normalized strings...
* ...seems to have little impact... * ...seems to have little impact...
* XXX MATCH limit candidates to actual page name matches -- this will * XXX MATCH limit candidates to actual page name matches -- this will