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 de javascript


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 47
    Points : 33
    Points
    33
    Par défaut Limite de javascript
    Bonjour,
    Voila, j'ai créé un script capable de générer toute les chaînes de caractere possibles après que l'utilisateur est défini la longueur des chaînes à générer, ainsi que des caracteres possibles.(je sais c'est pas clair lol)
    Exemple: je demande à mon scipt de générer toute les chaînes de 4 caractères avec trois lettres possibles : a,b et c. Celui-ci va me retourner (soit ici 81 chaînes de caractere possible) :

    -aaaa
    -aaab
    -aaac
    .....

    La, n'est pas le problème. C 'est juste qu'à partir d'une certaine longueur de chaine, I.E me met :
    "Un script présent sur cette page ralentit I.E. S'il continue, votre ordinteur risque de cesser de réagir"...
    Voila, apparemment quand la travail a effectué est trop important, bah I.E bloque javascript...
    J'aurais voulu savoir si mon meme script traduit en php et ainsi executé sur le serveur rencontrerai le meme probleme ou meme une autre solution... MERCI

  2. #2
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Points : 374
    Points
    374
    Par défaut
    Il y'a peut être quelque chose de lourd dans ton script, autrement ça fonctionnera très bien sur un serveur, du moins, mieux que dans un navigateur

  3. #3
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    A priori ca devrait passer plus facilement, même s'il existe quand meme un temps d'exécution maximal aussi coté serveur, spécifié dans ton php.ini

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    max_execution_time = 30     //Maximum execution time of each script, in seconds

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 47
    Points : 33
    Points
    33
    Par défaut
    d'accord et peut on changer la valeur de cette variable dans php.ini ?

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 672
    Points
    66 672
    Billets dans le blog
    1
    Par défaut
    changer la valeur dans php.ini n'y fera rien puisque javascript est interprété coté client ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 47
    Points : 33
    Points
    33
    Par défaut
    non mais je parlais dans la mesure ou mon script est en php

  7. #7
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    Ouais bien sur c'est possible. Dans le php.ini et meme via un htaccess.

  8. #8
    Membre confirmé Avatar de yjuliet
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Août 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 362
    Points : 460
    Points
    460
    Par défaut
    Quel que soit le langage utilisé, côté client ou serveur, le problème de base restera quoi qu'il en soit le même, à savoir la complexité algorithmique du code à exécuter.

    Si tu veux calculer toutes les chaines de N caractères composées uniquement des X caractères de ton alphabet, tu auras quoi qu'il en soit X^N chaines à calculer, donc, plus la taille de ta chaine grandit, plus le temps de calcul augmente (exponentiellement) et aussi plus l'occupation mémoire du programme augmente, à prendre en compte pour une exécution sur le serveur, en plus du temps d'exécution. Si tu cherches à calculer toutes les chaines de 8 caractères composées à partir d'un alphabet de 8 caractères, tu occuperas donc 128Mio soit 16 fois la mémoire autorisée par défaut par PHP (aussi modifiable dans le PHP.ini, mais si tu veux ajouter un caractère à la longueur des chaines, tu multiplies encore l'espace mémoire par le nombre de caractères de l'alphabet)
    La limitation de ce point de vue là est plus faible sur le client mais l'exécution est beaucoup plus lente, ... à voir en fonction de tes besoins ...

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 47
    Points : 33
    Points
    33
    Par défaut
    ah d'accord merci pour cette petite explication au niveau de la mémoire, enfaite c'est juste pour pouvoir lister les répertoires d'un site, en générant toute les URL et en vérifiant si cette URL est valide, donc le fichier présent sur le serveur, effectué par la deuxième partie de mon script. Merci @+

  10. #10
    Membre confirmé Avatar de yjuliet
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Août 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 362
    Points : 460
    Points
    460
    Par défaut
    Alors petit calcul rapide :
    Supposons que tu n'utilises comme alphabet que 64 caractères : [a-zA-Z0-9\-\.]
    Supposons que le nom de tes répertoires en question soient composés de 1 à 12 caractères chacun
    Le nombre de possibilités à calculer est supérieur à
    64^12 ce qui donne déjà 4 722 366 482 869 645 213 696 possibilités (4*10^21).
    En imaginant un calcul optimisé avec une requête par cycle d'horloge du processeur avec un CPU à 8 GHz, 5*10^11 secondes, soit plus de 18 705 ans.
    Si tu comptes faire des tests par réseau interposé, en HTTP par exemple, la fréquence pour les tests passe à quelques KHz, c'est à dire que le temps est multiplié en gros par un million, et encore, je pense être assez gentil ...
    Tu peux donc lancer ton script et revenir dans 19 milliards d'années voir le résultat... et encore, je ne parle que du premier niveau de l'arborescence ...
    Prévois un peu de café en attendant

  11. #11
    Membre confirmé Avatar de yjuliet
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Août 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 362
    Points : 460
    Points
    460
    Par défaut
    Si c'est pour ton propre site, t'as plutôt intéret à faire un listage des répertoires à l'aide des fonctions qui vont bien en PHP, car sur le serveur, tu as accès au système de fichier ...

    http://php.developpez.com/faq/ - http://php.developpez.com/cours/#langage

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 47
    Points : 33
    Points
    33
    Par défaut
    Sauf que je comptais lutilsais en local grace a easyphp avec mon ordi, ca serait possible ca non ?

  13. #13
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    A priori ouais, mais si c'est juste pour lister des fichiers t'as plus vite fait d'utiliser des fonctions dédiées à ca comme le disait yjuliet.

    J'ai du mal a comprendre pourquoi faire autrement en fait ^^

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 47
    Points : 33
    Points
    33
    Par défaut
    Cela me permettrais de lister les répertoires d'un site meme ceux qui possède un "index.html" ainsi que ceux interdit dans "robots.txt". bon maintenant il faut encore que je termine de retranscrire la première partie en php pi c'est bon, et puis de tester tout ca au point de vue performance, puis au pire, je le fais fonctionner dans un ciècle les ordinateurs seront assez performant pour me faire tout ca en 10 min :p. Alle merci a tous et puis bon dévelopement . (Je sais que c'est pas correct mais bon apparemment montruc prendrais des milliards d'anné donc il ya pas de prob ).

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

Discussions similaires

  1. Taille limitée pour Javascript ?
    Par pascal_06 dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 08/02/2011, 22h00
  2. ai-je ateins les limites du javascript ?
    Par cql-team dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 23/09/2008, 13h11
  3. Limitation de javascript
    Par JoseF dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 05/04/2008, 20h31
  4. [défi n°1] limite de javascript en calcul?
    Par javatwister dans le forum Général JavaScript
    Réponses: 30
    Dernier message: 20/08/2005, 15h02
  5. Limiter le nbr de caractères d'un textarea en JavaScript
    Par yoyot dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/02/2005, 12h06

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