WebPanel: be a litte more cpu friendly
- limit precision for animations to four digits - don't insist on a strict update frequency but schedule a redraw after a configured time. This gives the rendering thread of the browser more time to draw
This commit is contained in:
parent
651005b4b0
commit
c32d6029ff
1 changed files with 14 additions and 10 deletions
|
@ -184,6 +184,7 @@ FGFS.InputValue = function(arg) {
|
|||
this.interpolationTable = null;
|
||||
this.min = null;
|
||||
this.max = null;
|
||||
this.precision = 4;
|
||||
|
||||
this.getValue = function() {
|
||||
var value = this.value;
|
||||
|
@ -191,14 +192,14 @@ FGFS.InputValue = function(arg) {
|
|||
value = this.property.getNumValue();
|
||||
|
||||
if (this.interpolationTable != null && this.interpolationTable.length > 0)
|
||||
return FGFS.interpolate(value, this.interpolationTable);
|
||||
return FGFS.interpolate(value, this.interpolationTable).toPrecision(this.precision);
|
||||
|
||||
value = value * this.scale + this.offset;
|
||||
if( this.min != null && value < this.min )
|
||||
return this.min;
|
||||
return this.min.toPrecision(this.precision);
|
||||
if( this.max != null && value > this.min )
|
||||
return this.max;
|
||||
return value;
|
||||
return this.max.toPrecision(this.precision);
|
||||
return value.toPrecision(this.precision);
|
||||
}
|
||||
|
||||
if (typeof (arg) == 'number') {
|
||||
|
@ -416,13 +417,16 @@ FGFS.FGPanel = function( propUrl )
|
|||
|
||||
var mirror = new FGFS.PropertyMirror(this.props.propertyMirror);
|
||||
|
||||
var instruments = $(this.props.instrumentSelector).fgLoadInstruments(this.props.instrumentDataKey);
|
||||
this.instruments = $(this.props.instrumentSelector).fgLoadInstruments(this.props.instrumentDataKey);
|
||||
|
||||
window.setInterval( function() {
|
||||
instruments.forEach(function(instrument) {
|
||||
instrument.update();
|
||||
});
|
||||
}, this.props.updateInterval );
|
||||
this.update = function() {
|
||||
for( var i = 0; i < this.instruments.length; i++ ) {
|
||||
this.instruments[i].update();
|
||||
}
|
||||
window.setTimeout( $.proxy(this.update,this), this.props.updateInterval );
|
||||
}
|
||||
|
||||
this.update();
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
|
|
Loading…
Reference in a new issue