Prevent reloading the same class

This commit is contained in:
斟酌 鵬兄 2016-02-23 11:26:52 +08:00
parent c274018645
commit 8dc79c0fa7
1 changed files with 22 additions and 4 deletions

View File

@ -47,21 +47,39 @@
if( !classes.join ) classes = [ classes ]; if( !classes.join ) classes = [ classes ];
var excludes = BotanJS.getDef(); var excludes = BotanJS.getDef();
// Excludes
utils.objMap( excludes , function( v ) { return "-" + v; } );
var loadc = null;
var onLoad = function( e ) var onLoad = function( e )
{ {
if( classes.indexOf( e.data.name ) < 0 ) return; if( classes.indexOf( e.data.name ) < 0 ) return;
handler( e.data.name ); handler( e.data.name );
}; };
// Handle the already loaded classes
var needed = [];
for( var i in classes )
{
var c = classes[i];
if( excludes.indexOf( c ) == -1 )
{
needed.push( c );
}
else
{
handler( c );
}
}
if( !needed.length ) return;
// Excludes
utils.objMap( excludes , function( v ) { return "-" + v; } );
var loadc = null;
var sp = mode ? { 'o': '/', 'r': '/' }[ mode ] : ','; var sp = mode ? { 'o': '/', 'r': '/' }[ mode ] : ',';
loadFile( loadFile(
sapi sapi
, classes.join( sp ) + sp + excludes.join( sp ) , needed.join( sp ) + sp + excludes.join( sp )
, mode , mode
); );