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 :

question générale de performance JAVASCRIPT


Sujet :

JavaScript

  1. #41
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    Willpower - J'ai tester ton code. Je suis en train d'essayer de le comprendre... et je te dirai...

    NoSmoking : Si je comprend bien ton code, tu remplace mes object image() par autant d'object div... nn? un div est moins gourmand qu'une image()?

  2. #42
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Citation Envoyé par Darkyl Voir le message
    Willpower - J'ai tester ton code. Je suis en train d'essayer de le comprendre... et je te dirai...
    Je viens d'y rajouter qqes commentaires ;-)

  3. #43
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    Toujours en train de tester ta méthode Willpower. Merci pour les commentaires.

    Par contre, comme mes textures sont en biais avec une zone transparente, j'essaye de décaler les background mais ....

    Mon moteur est en 2d isométrique...

    test

  4. #44
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Impossible de modifier le background, (enfin pour ce que tu veux faire), la solution est de créer des images modifiées comme ceci :



    Qui misent côte à côte te donnent le bon résultat :
    http://www.hommk.net/test.htm

    http://www.hommk.net/JEU/

  5. #45
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    merci, c'est bien ce que je pensais.

    Je garde ta solution pour le cas où je ne change pas beaucoup de textures au final.

    On verra, mais ta méthode est la plus rapide. Merci encore.

  6. #46
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Citation Envoyé par Darkyl
    NoSmoking : Si je comprend bien ton code, tu remplace mes object image() par autant d'object div... nn? un div est moins gourmand qu'une image()?
    ce qui est fortement moins gourmand et de jouer sur le CSS en non sur le DOM, il est plus rapide de modifier la class d'un élément que les valeurs de ses propriétés, en code et en redraw du navigateur.

    Ceci étant, je viens de reprendre la discussion que j'avais lue en diagonale, ton soucis est plus un soucis de méthode optimum à appliquer.

    Si la "map" de fond ne te sert que de "quadrillage coloré" il est effectivement plus judicieux de mettre une image en background de la DIV, comme l'a suggéré Willpower.
    Citation Envoyé par Darkyl
    Donc si au final, je me retrouve avec autant (même si ca me ferait mal) d'éléments de textures rajoutés que d'images du backgoround repeat, alors autant les créer direct et plus au fur et à mesure (les object image()). non?
    dans ce cas tu n'aurais pas de chance, mais dans tout les autres cas tu resteras gagnant à ne modifier que ce qui doit être changer.

    Qui plus est lors d'un rajout d'un étang tu peux encapsuler les losanges dans une DIV qui lors d'un déplacement sera la seule à déplacer.

    Tu te retrouveras avec un empilage de niveau et sur chacun d'entre eux tu pourras mettre un écouteur personnalisé.

    On rejoint un autre point souligné par Willpower, qui est de mettre un écouteur sur la "map" plutôt que sur chaque élément, la position sur le quadrillage étant somme toute facile à récupérer, il s'agit d'une simple équation du type y=ax. Si une couche intermédiaire récupère un événement tu le traites et tu stoppes la propagation.

    Sûrement oublié des petites choses mais ...

  7. #47
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    NoSmoking : Oui, tu as raison, mon soucis est plus du point de vue de l'archi optimal à mettre en place, que d'optimisation d'une tache en particulière.
    Je viens de m'en rendre compte car:
    - je veux mettre des textures (par exemple une zone cultivable), hors l'image de cette zone peut être plus grande qu'une case (par exemple les tiges des herbes dépassent le haut de la case). Si je gère ces ressources primaires comme des textures, c'est pas bon, car si je veux une ressource qui fasse deux cases... pas possible, de plus, je dois impérativement gardé une image de fond sur chaque case (même rempli par un batiment) car sinon au survol de la souris, le temps de changer l'image du batiment, j'ai un léger blanc ou décalage de l'image de texture (que je viens remettre) enfin bref, comme tu vois c'est la ....

    Donc, je repense l'archi et j'en viens à faire:
    - une ressource primaire (bois, herbe cultivable, gisement de fer ...) sera le plus simple objet géré par mon moteur graphique. Cet objet sera en realité, un objet général (x,y,zindex,src,width,height) ->prototypé dans tous les objets construits
    et un objet relatif au type construit, ici un objet ressource_primaire...

    Voili, donc je repense à tous ça... Je pense qu'effectivement je vais faire la méthode du backround de Willpower au final pour le fond de mes cases.

    Concernant le déplacement, je garde le scroll invisible de mon body. Donc toute la map sera créé en entière. Par contre, je testerai avant de changer une src d'une image case et de déplacer un perso, que ceux-ci soient bien dans la zone visible... Pour pas faire des choses pour rien.

    Concernant les écoutes, je fais déjà un mouseover sur la map et non sur les cases. De plus l'écoute sur la map ne se fera quand mode édition, mode construction (au survol donc), sinon, en mode normale, il n'y aura qu'une écoute en onclick sur la map donc rien de gourmand en temps réel.

    Je galère là avec des cours de classes javascript puis surtout, voulant rendre les ajouts de type de batiment facilement faisable, je confond bien souvent le constructeur d'un type (par ex maison) avec celui de sa possible déclinaison en objet (par ex maison 1)...

    C'est de la lobotomisation en directe.

    merci de ta réponse, je continu ma prospection... merci encore

  8. #48
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    N'empêche faut être barge pour faire un jeu composé de cases de forme non carré !!

    Petite version hexagonale : http://www.hommk.net/JEU/


  9. #49
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    lol
    mes cases sont carrées, elles font même 30*30 mais en 3d isométrique alors pffff...
    C'est vrai que ça complique pas mal le truc, enfin juste une fonction coord_3d_iso_to_2d pour transformer ma position souris dans le body en position souris dans la map...

    J'y penserai pour la prochaine fois....A faire des cases carrées comme à l'armée

  10. #50
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    re,

    Voilà une version de base (avec toujours la vieille méthode d'affichage de fond) mais à part cela, c'est optimisé.
    lien

  11. #51
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Je n'ai fait que survoler ce thread (intéressant, d'ailleurs ), mais je voulais juste souligner en passant l'existence de YSlow (surcouche de Firebug) pour profiler le code JS et savoir "là où ça coince" en terme de performance.

    Mais bon, vous avez l'air d'avoir déjà bien avancé, ce n'est peut-être plus très utile... disons que c'est juste au cas où. ^^

  12. #52
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    Je ne connais pas YSlow, je vais y jeter un coup d'oeil, c'est toujours bon à prendre. Merci.

  13. #53
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    J'ai fini la fonction de survol de la map et de construction de batiment.
    Voici le lien.
    lien

    Si on clique sur un bâtiment à construire (de préf, production -> hutte de bucheron) et que l'on se ballade sur la map, la vérif des cases marchent bien mais firefox est toujours aussi lents, notamment quand on survol les herbes fertiles (prés de la rivière).
    Chrome marche trés bien (l'accés au dom, $('#terrefertile_n').hide()) est toujours aussi lent sous firefox.

    Si vous pouviez tester pour voir si cela vient pas que de chez moi...

  14. #54
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    chez moi firefox plante au chargement de la page ;-)

  15. #55
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    Ha bon...

    Désolé, j'espère que tu n'as pas dû tout fermer...

    Bizarre... Chez moi, firefox (v 12) marche bien, juste un peu lent.
    C'est peut-être le surchargement du DOM avec mes n*m image() de fond...

    Et tu as testé sous chrome par hazard?

  16. #56
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Oui je suis sous chrome (par défaut) et ça va bien.

    J'ai ouvert sous firefox juste pour voir et ça plante ... ça ne charge pas les images de fond.. et firefox ne répond pas. (j'ai testé sur un vieux pc et sur mon pc plus récent avec firefox 12 et même résultat.)

  17. #57
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    Merci d'avoir pris le temps...

    Bon, je re-recommence tout, cette fois-ci en appliquant ta méthode pour le fond... et déjà elle est pas compatible IE...

    Je commence à en avoir marre, même les style css sont mal géré par IE... ca craint.

    test

  18. #58
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    note pour les wrap(zones pour cacher les cotés et les rendre oblique), je m'étais amusé pour le fun de les créer en css, pour ceux-ci une image des qqes pixels étirée à la bonne taille est peut-être plus adaptée.

  19. #59
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    merci pour l'edit...
    Heu, cela fait tout moche une petite image étirée à la bonne taille, mais je pense avoir trouvé une bonne solution.

    Je tiens o jus.

    MERCI ()

  20. #60
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    nouvelle version (avec ta méthode) :
    lien

    Cette fois-ci, je crois que c'est la bonne.

    Juste une ptite qust:

    Comment laisser passer un évènement? sans l’arrêter...

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. [Python 2.X] Questions générales : performance lecture fichier et excel en python
    Par coolpix77 dans le forum Général Python
    Réponses: 5
    Dernier message: 24/03/2015, 17h22
  2. Petite question générale sur Javascript
    Par skywaukers dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/11/2007, 17h49
  3. [Hibernate 3] Questions générales sur les performances
    Par hugo123 dans le forum Hibernate
    Réponses: 7
    Dernier message: 13/12/2006, 17h02
  4. [LDAP] Questions générales sur LDAP
    Par guiguisi dans le forum Autres SGBD
    Réponses: 5
    Dernier message: 25/05/2005, 10h05
  5. Petite question sur les performances de Postgres ...
    Par cb44 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 13/01/2004, 13h49

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