2010-11-19 13 views
0

Ce titre est une bouchée et un peu déroutant, mais vous lisez toujours ceci, donc je suppose qu'il y a de l'espoir.

J'ai une interface de flux de travail qui a plusieurs types d'étapes qui peuvent être ajoutés. Je crée chaque type d'étape indépendamment dans son propre fichier PHP. Quand une étape doit être chargée, j'appelle $ .post, en passant un certain JSON, et récupère la réponse à afficher dans mon générateur de workflow.

Il existe actuellement 5 types d'étapes. Obtenir le HTML/DOM à partir de $ .post à la demande est lent. Je voudrais obtenir tout le HTML/DOM de l'étape en faisant un $. Post à chaque page à l'avant, à la fin de la page ou au bas de $ .ready. Ainsi, lorsqu'une étape doit être chargée, je retire le HTML/DOM de l'objet de stockage JSON. J'aurai tout ce dont j'ai besoin et l'utilisateur n'aura pas à attendre.

Voici ma question, comme je ne l'avais pas fait auparavant. Si quelqu'un sélectionne une étape dès que l'interface de flux de travail est rendue, il y a de fortes chances que le type d'étape ne soit pas encore dans l'objet de stockage JSON. Dans ce cas, je pense que je devrais sortir et l'obtenir pour le rendu. Je voudrais alors mettre dans le tableau pour une utilisation ultérieure.

Je réfléchis à cela et je me demande comment cela pourrait fonctionner. Mon interface utilisateur sera-t-elle disponible pendant que je construis l'objet JSON qui contiendra le HTML/DOM de l'étape? Si non, comment puis-je le rendre disponible et faire tout cela de manière asynchrone? Comment puis-je m'assurer de ne pas écrire le même code HTML sur mon objet JSON en même temps? J'ai envisagé de créer toutes les étapes dans un fichier HTML séparé, donc je ne fais qu'un appel, mais ce serait bien d'avoir les HTML/DOM disponibles au fur et à mesure qu'ils sont chargés.

J'espère que j'ai du sens. J'ai fait des recherches à ce sujet, mais j'espère que quelqu'un a fait cela et me ferait gagner du temps.

Merci gang!

+1

A) Tout le monde a fait. C'est le point de JSON. Vous n'avez vraiment pas beaucoup lu à ce sujet avez-vous? B) Si cela prend trop de temps à traiter, vous faites quelque chose de mal. C) Vous avez été assez longtemps pour savoir que vous devez accepter des réponses ou offrir des primes. D) http://en.wikipedia.org/wiki/JSON – jcolebrand

+0

Merci beaucoup pour votre commentaire inutile drachenstern. Cela n'a vraiment rien à voir avec JSON car c'est juste le format de données. J'apprécie cependant la rhétorique. Tu connais vraiment tes trucs. –

Répondre

0

Dans votre exemple, vous pouvez envisager de bloquer votre interface graphique ou de désactiver l'interface qui effectue les requêtes pour le flux de travail HTML. Ce serait une façon de faire.

Je pense que ce serait votre option la plus sûre, car sinon vous finirez par doubler les demandes et juste de gaspiller la bande passante que vous pouvez utiliser pour d'autres requêtes AJAX, etc.

+0

C'était ma première pensée - pour montrer à l'utilisateur une sorte de spinny pendant que ceux-ci se chargent. J'espère qu'il y a d'autres options. –