IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] barre de progression & Ajax


Sujet :

AJAX

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Par défaut [AJAX] barre de progression & Ajax
    Bonjour à tous,

    Je suis plus ou moins débutant en ASP et j'ai un problème pour faire afficher une barre de progression avec AJAX.

    J'ai une page qui doit mettre à jour une base de données Access à partir de données SQL Server. Je veux afficher la progression des tables mise-à jour avec un contrôle ProgressBAr de JQuery.

    Sauf que le 'post' de cette page ne débute jamais. Il entre pas dans le 520F1B (j'ai mis un breakpoint dans Visual Studio). De plus, la ligne error: function (xhr, status, errorThrown) me ramene un erreur 500-Internal Server Error au lieu d'appeler mon 520F1B

    Est-ce que mon appel Ajax 'POST' est correct ?

    Toute informations, pistes de solutions seraient grandement apprécié

    Merci à tous


    Voici la structure de mes pages
    520F1 - Page ASP principale qui doit afficher la barre de progression des tables mises-à-jour.
    520F1B - Page qui débute l'export de mes données en ACCESS
    520F1C - Page qui fait le 'GET' des étapes (tables mises-à-jour) dans les DLL.
    520F1D - Page qui retourne le nom de la BD Acess créee.

    Voici l'appel à la procédure Export (520F1B) qui me cause des problèmes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
     
     
                // Execution de l'export
                function ProcessExport(objParams) {
                    // appel ajax de lancement d'export
                    //
                    $.ajax({
                        type: 'POST',
                        url: 'REL520F1b.asp',
                        data: objParams,
                        error: function (xhr, status, errorThrown) {
                        alert(errorThrown + '\n' + status + '\n' + xhr.statusText);
                        } 
                })
                  // Vérification de l'état d'avancement de l'export
                    CheckState();
                }
     
                // appel ajax pour récupérer etat avancement
                function CheckState() {
                    setTimeout(function () {
                        $.ajax({
                            type: 'GET',
                            url: 'REL520F1c.asp',
                            data: {},
                            success: function (dataGet) {
                                // conversion en les données de retour en un objet javascript/JSON
                                var obj = JSON.parse(dataGet);
     
                                // mise à jour des indicateurs graphiques ( label + barre de progression )
                                $("#LblExportProgression").text(obj.progressMsg);
                                $("#DivExportProgression").progressbar("value", parseInt(obj.progressValue));
     
                                // tant que le processus d'export est en cours, 
                                // on appelle récursivement la méthode de test
                                if (obj.process === "true") {
                                    CheckState();
                                }
                                else { // on retourne le fichier généré
                                   window.location.href = "REL520F1d.asp";
                                }
                            },
                            error: function (xhr, status, errorThrown) {
                                //alert(errorThrown + '\n' + status + '\n' + xhr.statusText);
                                alert("Echec de la récupération de l'avancement de l'export.Veuillez contacter votre administrateur.");
                            }
                        });
                    }, 500);
                }

  2. #2
    Futur Membre du Club
    Inscrit en
    Mars 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Par défaut
    J'ai fait quelques tests ce matin et voici ce que j'ai pu trouver.

    En espérant que cela pourrait éclairer quelqu'un.

    Merci d'avance pour votre temps !!

    J'ai pu entrer dans mon 'breakpoint' dans mon projet sur la page REL520F1C, mais le retour de JSON est 'empty' car il semble que le 'POST' n'ai jamais été fait. De plus cela semble se confirmer quand je regarde ma variable Session qui n'a pas de variable ("RELEXPORTSGC").

    Code asp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if Request.ServerVariables("REQUEST_METHOD") = "GET" then
      ' on récupère l'état d'avancement de l'export à partir de la variable de session
      ' cette variable est mise à jour à chaque étape du processus
      ' la valeur est formattée JSON : "{""process"": ""{0}"", ""progressValue"" : ""{1}"", ""progressMsg"" : ""{2}"" }"
      objResultJSON = Session("RELEXPORTSGC")
      ' on retourne la valeur qui sera traitée par un script javascript
      Response.Write objResultJSON
      Response.End
    end if
    %>

    Voici, en gras, la ligne en erreur dans le script

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
                // appel ajax pour récupérer etat avancement
                function CheckState() {
                    setTimeout(function () {
                        $.ajax({
                            type: 'GET',
                            url: 'REL520F1c.asp',
                            data: {},
                            success: function (dataGet) {
               // conversion en les données de retour en un objet javascript/JSON
                                var obj = JSON.parse(dataGet);
     
     // mise à jour des indicateurs graphiques ( label + barre de progression )
                                $("#LblExportProgression").text(obj.progressMsg);
                                $("#DivExportProgression").progressbar("value", parseInt(obj.progressValue));
     
                                // tant que le processus d'export est en cours, 
                                // on appelle récursivement la méthode de test
                                if (obj.process === "true") {
                                    CheckState();
    Selon ce que j'ai pu voir, quand je 'trace' le script a partir de l'utilitaire de IE8.0 (Outil de developpement), il ne semble pas exécuter mon "POST" car j'ai mis un 'breakpoint' sur le IF dans mon projet à l'ouverture de REL520F1B et il ne passe pas par là.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // Execution de l'export
                function ProcessExport(objParams) {
                    // appel ajax de lancement d'export
                    //
                    $.ajax({
                        type: 'POST',
                        url: 'REL520F1b.asp',
                        data: objParams,
                        error: function (xhr, status, errorThrown) {
                        alert(errorThrown + '\n' + status + '\n' + xhr.statusText);
                        } 
                })
                  // Vérification de l'état d'avancement de l'export
                    CheckState();
                }
    Voici le début de 'REL520F1b.asp'

    Code asp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    if Request.ServerVariables("REQUEST_METHOD") = "POST" then
       Set objExport = Server.CreateObject("RELIISExportSGCL4Net.CRELIISExportSGCL4Net")
       Set objExportParameter = Server.CreateObject("RELIISExportSGCL4Net.CRELIISExportParams")
     
       objExportParameter.IdResConc = Request.Form("ddlResConc")
       objExportParameter.CodeResConc =  Request.Form("ddlConIdRes")
     
       ' assignation du nom de la variable de session dans laquelle sera stockée le message d'avancement du processus d'export
        objExport.LogSessionName = "RELEXPORTSGC"
     
        ' assignation du chemin de la base de donnée cible
       mdbAdresseCible = ObtAdresseMDB() 
     
        ' Execution de l'export
       objexport.ExportSGC("L4",objExportParameter, mdbAdresseCible)
     
    end if

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Par défaut
    Après avoir fait plusieurs tests, je me suis rendu compte finalement que la ligne en gras n'était pas une fonction, mais bien un SUB.. donc a cause des (), ca faisait planter avec un 500-Internal Server Error. !!!

    Code asp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    if Request.ServerVariables("REQUEST_METHOD") = "POST" then
       Set objExport = Server.CreateObject("RELIISExportSGCL4Net.CRELIISExportSGCL4Net")
       Set objExportParameter = Server.CreateObject("RELIISExportSGCL4Net.CRELIISExportParams")
     
       objExportParameter.IdResConc = Request.Form("ddlResConc")
       objExportParameter.CodeResConc =  Request.Form("ddlConIdRes")
     
       ' assignation du nom de la variable de session dans laquelle sera stockée le message d'avancement du processus d'export
        objExport.LogSessionName = "RELEXPORTSGC"
     
        ' assignation du chemin de la base de donnée cible
       mdbAdresseCible = ObtAdresseMDB() 
     
        ' Execution de l'export
       objexport.ExportSGC("L4U",objExportParameter, mdbAdresseCible)

    Maintenant, quand j'arrive à la dernière ligne, cette fonction me retourne un erreur bizarre :

    "007~ASP 0102~Entrée d'une chaîne attendue~La fonction attend l'entrée d'une chaîne."
    Pourtant, mdbAdresseCible est bel et bien un string...

    Argg, je suis pas encore au bout de mes peines !!!

    Voici le SUB dans ma DLL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      Public Sub ExportSGC(ByVal Phase_BD As String, ByVal aParam As Object, ByVal aAdresseMDB As String)
            Dim objParam As IExportParams = DirectCast(aParam, IExportParams)
            _RELSERExportSGC.ExportSGC(Phase_BD, objParam, aAdresseMDB)

  4. #4
    Futur Membre du Club
    Inscrit en
    Mars 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Par défaut
    Finalement, mon probleme est ailleurs, je doit créer une base de données ACCESS 97 avec ces données et ca semble être au niveau de l'écriture de la base de données que ca me cause du souci.

    Donc, je vais continuer mes recherches du côté DAO.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/02/2014, 12h27
  2. [AJAX] Barre de progression pour un upload ftp
    Par hicham285 dans le forum AJAX
    Réponses: 3
    Dernier message: 15/06/2011, 09h25
  3. [AJAX] Barre de progression de chargement serveur
    Par lightbulb dans le forum AJAX
    Réponses: 6
    Dernier message: 13/05/2011, 21h41
  4. [AJAX] barre de progression ajax
    Par osuwariboy dans le forum AJAX
    Réponses: 17
    Dernier message: 05/11/2010, 14h17
  5. [AJAX] Utilisation d'un barre de progression
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/03/2008, 16h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo