2009-08-10 6 views
1

Environnement: ASP.NET, C#Comment afficher l'état d'énorme processus client (web)

Je suis en train d'écrire un programme Web qui exportera 12 tables à une autre base de données. Lorsque l'utilisateur clique sur le bouton "Exporter", le processus d'exportation commencera. La chose est, j'aime montrer quelques messages au client tels que «préparant ..., supprimant de vieux disques ..., exportant ..., exportation terminée.

Mais maintenant, il montre tous les statuts une fois que 12 tables sont terminées.

S'il vous plaît me guider comment faire cela.

Répondre

0

essayer

Mettre cela sur C# et appeler ajavascript fonction par processus

Page.RegisterClientScriptBlock ("1", "alert ('ajouter à la table maintenant')");

2

Faire un long processus comme celui-ci est sur une page Web est probablement pas une bonne idée, vous devez modifier les paramètres de délai d'attente sur les pages etc

construire plutôt un service Windows qui fait tout le travail. Vous pouvez ensuite utiliser la page pour initialiser le processus. Le service peut mettre à jour un état lu par la page. De cette façon, la page fait très peu de travail, c'est-à-dire lancer le processus et interroger les mises à jour de statut. Cela peut être fait via de simples appels jquery/ajax.

0

Utilisez une minuterie JavaScript pour charger régulièrement du contenu à partir d'une page d'état ou d'un service.

La minuterie est assez simple:

setTimeout('checkProcessStatus()', waitTime); 

La mise à jour elle-même dépend de votre choix de technologie - par exemple si vous utilisez MVC et jQuery:

function checkProcessStatus() { 
    //dynamically add the html from the status page to <div id="taskStatusPanel" 
    $('#taskStatusPanel').load('export/status/' + taskId); 

    //set timer to call this again 
    setTimeout('checkProcessStatus()', waitTime); 
} 

Ensuite, l'action ExportController.Status retournerait simple affichage qui affiche le code HTML pour le statut actuel.

Questions connexes