Javascript Événement De Synchronisation

Je suis en train de construire un calendrier de concert qui est très lourd sur le javascript (à l'aide de jQuery). Je vais avoir des problèmes de synchronisation de divers événements tout au long de l'app, et je suis à la recherche de suggestions pour savoir comment faire cela.

Un exemple d'un cas d'utilisation simple:

  1. Utilisateur clique sur un mois
  2. Calendrier ignore à ce mois

Un exemple plus complexe de cas d'utilisation:

  1. Utilisateur sélectionne un artiste
  2. Calendrier détermine la date de cette artiste pour la première fois
  3. Calendrier ignore à ce mois
  4. Calendrier souligne que l'artiste du spectacle(s)

Un problème occasionnel, c'est que le mois n'est pas encore rendus par le temps, j'essaie de mettre en évidence l'artiste du spectacle(s). Ainsi, le spectacle n'est pas mis en évidence, même si ces fonctions sont appelées dans l'ordre. De toute évidence, à l'aide de setTimeout() est assez hacky, et pas garanti pour fonctionner.

Alors d'abord, une simple question -- est-il possible (même en Chrome) pour la fonction suivante à exécuter hors de la séquence?

function steps(){

    stepOne(); //TAKES 30 SECONDS

    stepTwo(); //TAKES < 1 SECOND

}

Deuxième, une question simple:

 S'il est placé à la fin d'une fonction, d'un JS de rappel TOUJOURS courir après 
tout le reste de la fonction donnée a fini de s'exécuter? 

Si oui, je pourrait nid chaque fonction comme un rappel de sa fonction précédente. Mais qui serait susceptible de devenir trop compliqué, une fois que vous envisager tous les cas d'utilisation.

Ici est une approche que j'envisage:

 1) Permettre à chaque fonction de l'option de rappel paramètre. Si il est présent, 
appel à la fin de la fonction. 

2) au Cours d'une INTERFACE utilisateur d'actualisation, de créer un tableau, et de la pile toutes les fonctions 
appelé dans ce tableau. 

3) une Fois que ce "script" est terminé, parcourir le tableau, en appelant 
chaque fonction dans l'ordre qu'il a ajouté, à l'aide de la fonction suivante 
comme la précédente, la fonction de rappel. 

J'imagine que cela permettrait de s'assurer que toutes les fonctions sont appelées dans l'ordre.

Une autre approche consiste à fixer les écouteurs d'événement à l'aide de

$(document).bind("listener.name", fnCallback);

Et puis l'appel de

$(document).trigger("listener.name");

Chaque fois que cet événement se produit.

Cependant, je suppose que ce serait un peu lourd ainsi, en tenant compte des différents événements pourraient avoir besoin d'appeler différentes fonctions selon le cas d'utilisation. Je pourrais toujours faire appel à

$(document).unbind("listener.name");

avant d'ajouter de nouveaux événements, mais encore une fois -- je suis penchée vers la création d'une sorte de maître "script" comme je l'ai suggéré dans la première approche.

J'espère que ce n'est pas trop vague -- des commentaires? Aucune expérience avec le complexe de l'Isu qui avait pour synchroniser les différents événements?

Merci beaucoup,

Michael

InformationsquelleAutor marclar | 2009-07-02