minor performance tweaks...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2016-04-13 01:17:53 +03:00
parent 90ea24633a
commit 6fa4c25e1a
2 changed files with 24 additions and 6 deletions

View File

@ -151,7 +151,7 @@ var MetadataReaderActions = actions.Actions({
}], }],
// XXX STUB: add support for this to .readMetadata(..) // XXX STUB: add support for this to .readMetadata(..)
_readAllMetadata: ['- Image/Read all metadata', readAllMetadata: ['- Image/Read all metadata',
function(){ function(){
var that = this var that = this
// XXX make this a global API... // XXX make this a global API...
@ -194,6 +194,19 @@ module.MetadataReader = core.ImageGridFeatures.Feature({
handlers: [ handlers: [
// XXX STUB: need a better strategy to read metadata... // XXX STUB: need a better strategy to read metadata...
// Approach 1 (target):
// read the metadata on demand e.g. on .showMetadata(..)
// + natural approach
// - not sync
// really complicated to organize...
//
// Approach 2:
// lazy read -- timeout and overwrite on next image
// - hack-ish
// + simple
//
// Approach 3:
// index a dir
['focusImage', ['focusImage',
function(){ function(){
var gid = this.current var gid = this.current
@ -299,9 +312,9 @@ var MetadataUIActions = actions.Actions({
var field_order = this.config['metadata-field-order'] || [] var field_order = this.config['metadata-field-order'] || []
var x = field_order.length + 1 var x = field_order.length + 1
var img = this.images && this.images[image] || null
// get image metadata... // get image metadata...
var metadata = img && img.metadata || {} var metadata = this.getMetadata(image) || {}
var img = this.images && this.images[image] || null
// helpers... // helpers...
var _cmp = function(a, b){ var _cmp = function(a, b){

View File

@ -203,7 +203,11 @@ module.DOMAdapter = {
var RibbonsClassPrototype = { var RibbonsClassPrototype = {
// Generic getters... // Generic getters...
getElemGID: function(elem){ getElemGID: function(elem){
return JSON.parse('"' + elem.attr('gid') + '"') return JSON.parse('"'
+ (elem instanceof jQuery ?
elem.attr('gid')
: elem.getAttribute('gid'))
+ '"')
}, },
setElemGID: function(elem, gid){ setElemGID: function(elem, gid){
return $(elem) return $(elem)
@ -1505,7 +1509,7 @@ var RibbonsPrototype = {
var unload_marks = [] var unload_marks = []
loaded = loaded loaded = loaded
.filter(function(i, img){ .filter(function(i, img){
var g = that.getElemGID($(img)) var g = that.getElemGID(img)
if(gids.indexOf(g) >= 0){ if(gids.indexOf(g) >= 0){
return true return true
} }
@ -1513,7 +1517,8 @@ var RibbonsPrototype = {
unload_marks = unload_marks.concat(that.getImageMarks(g).toArray()) unload_marks = unload_marks.concat(that.getImageMarks(g).toArray())
return false return false
}) })
// remove everything in one go...
// detach/remove everything in one go...
$(unloaded) $(unloaded)
.detach() .detach()
.removeClass('moving current') .removeClass('moving current')