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

JavaScript Discussion :

Limite longueur Maximum dans méthode objetXmlHttpRequest.send(params) ?


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Limite longueur Maximum dans méthode objetXmlHttpRequest.send(params) ?
    Salut,

    J'ai un gros soucis d'envoie de donnée vers mon serveur.

    Pour faire simple, je dois envoyer au serveur (ici tomcat) des données plus ou moins volumineuse sous format xml.

    J'utilise l'objet DOM xmlHttpRequest() sans probleme en POST, j'ai donc:

    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
    function loadHTMLByUrl(sURL,params){
    var myXMLHTTPRequest = null;
    	//alert((navigator.appName.substring(0,9)));
    	if ((navigator.appName.substring(0,9))=="Microsoft") {
    		try {
    			myXMLHTTPRequest = new ActiveXObject("Microsoft.XMLHTTP");
    		} catch(e) {
    			myXMLHTTPRequest = new ActiveXObject("Msxml2.XMLHTTP"); 
    		}
    	} else {
    		myXMLHTTPRequest = new XMLHttpRequest();
    		
    	}
    	myXMLHTTPRequest.open("POST", sURL, false);
    	myXMLHTTPRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    	myXMLHTTPRequest.send(params);
    	return myXMLHTTPRequest.responseText;
    }
    Que j'appelle de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var responseTxt = loadHTMLByUrl("manageNewCource.do","xmlNewCourceTxt="+xmlNewCourcesTxt);
    
    avec xmlNewCourcesTxt, contenu de type String, correspondant à ma valeur XML.

    Cette valeur XML peut atteindre facilement les 15000 caracteres et plus.

    C'est ici que se situe le probleme, lorsque j'envoie ma requete avec par exemple une longueur totale de mon paramatre à plus de 15000 caracteres, du coté de mon serveur, je récupere une limite figé à 13174 caracteres et du coup, le xml n'est pas complet et n'est pas validé !!

    Je me dis que c'est dans la requete d'envoie HTTP que doit-etre limité la taille max OU mon serveur tomcat qui limite les requetes HTTP, OU limite du type MIME.

    J'ai pensé à mettre ces informations dans un fichiers text et l'envoyé, mais le javascript ne gere visiblement pas les flux input/output.

    J'avoue que je suis à court d'idées .

  2. #2
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Et utiliser une session et envoyer la requête par partie plus légère ??

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Dans ce cas, effectivement, mais cela alourdie sensiblement le code et l'appli web.

    Je m'explique, j'utilise cette méthode dans deux cas, la sauvegarde automatique et l'envoie finale de mes informations.

    Prenons le cas de la sauvegarde automatique, c'est à la fin d'un evenement particulier qu'es appellé la méthode de sauvegarde,

    De mon client:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    je recupere et fais mon xml,
    
    j'envoie une premiere partie au serveur.
    
    direction serveur
    
    tant que reception du serveur 'continu' alors
        envoie d'une autre partie du xml
        si fin xml alors
            envoie en meme temps variable FIN
        finif

    De mon serveur:
    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
    //Je recoie des informations
    si l'element session n'existe pas alors
        je le crée et le lui ajoute la valeur reçu
    sinon
        je recupere l'element de session, et lui concatene la valeur reçu
    
    // verification de la fin du traitement
    si parametre fin dans request alors
        envoie signe fin au client
    sinon
        envoie signe continu
    finif
    fintantque
    
    direction client
    En ecrivant l'algo, je me rend compte que c pas mal, je vais tester

    en tout cas merci pour la direction, c ce genre d'idée qui me manquer, trop acces sur l'envoie total de l'infos

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

Discussions similaires

  1. Limiter le nombre de passages maximum dans un foreach
    Par Keyzounet dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 14/01/2013, 16h47
  2. limiter montant maximum saisi dans un input
    Par tib0 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/03/2010, 05h27
  3. [Débutant(e)]valeur par défaut dans méthodes
    Par seiryujay dans le forum Langage
    Réponses: 3
    Dernier message: 13/07/2005, 12h02
  4. Réponses: 4
    Dernier message: 02/07/2004, 10h31
  5. limiter la saisie dans un edit à des réels!!!
    Par shout dans le forum Windows
    Réponses: 10
    Dernier message: 21/06/2004, 16h20

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