2010-08-05 3 views
1

Je voudrais commencer à incorporer LABjs dans mon projet mais je veux savoir s'il y a de toute façon à condition de charger des scripts. Par exemple, quelque chose comme:LABjs chargement des scripts conditionnellement

$LAB 
    .script('framework.js').wait() 
    .script(function(){ 
     if(es){ 
      return 'es.js'; 
     }else{ 
      return ''; 
     } 
    }) 

Je n'ai pas essayé cela mais je suis sûr que cela ne fonctionnera pas. Y a-t-il une manière plus élégante de faire ceci?

Merci

+0

Pour ajouter quelques exemples concrets, des scripts de localisation, des scripts spécifiques au navigateur (je dois supporter l'ancien ie6), des scripts qui ne sont pas nécessaires si l'utilisateur est authentifié. Je suis sûr qu'il y en a plus. Que faites-vous pour ces situations? –

Répondre

4

En fait, LABjs maintenant (et pendant un certain temps) a soutenu l'enchaînement conditionnel ... dans deux façons. Premièrement, vous pouvez passer une fonction à un appel .script(), et cette fonction peut avoir une logique conditionnelle à l'intérieur qui renvoie des chaînes d'URL différentes (ou rien du tout) en fonction des conditions. Deuxièmement, les chaînes sont maintenant entièrement résumables (à partir de la version 2.0, elles seront publiées dans quelques jours), vous pouvez donc faire une forme plus simple du "chaînage simulé" mentionné dans ce billet, en sauvegardant simplement l'état d'une chaîne. puis ramasser et en ajoutant plus tard, comme:

var $L = $LAB.script(...).script(...); 

if (...) { $L = $L.script(...).wait(...); 

// ... 

$L = $L.script(...)..... 
0

J'utilise LABjs pour la plupart de mes projets, mais quand j'ai besoin enchaînement sous condition que j'utilise yepnode. C'est assez similaire à LABjs, mais je préfère comment yepnodes gère le chargement conditionnel.

Questions connexes