script async ? jquery 2 fois

  • Posts: 2667
  • Thank you received: 68
8 years 10 months ago #246198

-- HikaShop version -- : 263
-- Joomla version -- : 360

Bonjour

est ce un probleme de passer tous les scripts en async pour le fonctionnement d'hikashop ?

<script src="/media/com_hikashop/js/hikashop.js?v=263" async="async"></script>

ensuite hikashop charge son propre jquery
<script src="/media/com_hikashop/js/jquery.min.js" async="async"></script>

alors qu'une version est deja chargee
<script src="/media/jui/js/jquery.min.js" async="async"></script>

ne peut on pas eviter ça ?

il charge aussi
<script src="/media/com_hikashop/js/tooltip.js"></script>
que je ne veux pas utiliser

comment eviter ça aussi ?

merci

Last edit: 8 years 10 months ago by erickb.

Please Log in or Create an account to join the conversation.

  • Posts: 83932
  • Thank you received: 13588
  • MODERATOR
8 years 10 months ago #246202

Bonjour,

Ajouter async peut potentiellement faire que le javascript dans le header qui a besoin des classes/fonctions dans le fichier soit exécuter avant que le fichier soit chargé et parsé et donc causer un problème.
Je ne recommande pas de faire ça.

Pour jQuery, vous pouvez utiliser l'extension jQuery Easy pour éviter cela.

Pour tooltips.js il n'est chargé par HikaShop que quand c'est nécessaire. Si vous l'avez sur la page, c'est que quelque chose sur la page a besoin de lui. Donc je ne recommande pas de l'enlever.
Mais si vraimenet vous voulez le faire, il faut changer la fonction hikashop_loadJslib dans administrator/components/com_hikashop/helpers/helper.php

The following user(s) said Thank You: erickb

Please Log in or Create an account to join the conversation.

  • Posts: 2667
  • Thank you received: 68
8 years 10 months ago #246378

nicolas wrote: Pour jQuery, vous pouvez utiliser l'extension jQuery Easy pour éviter cela.

Oui j'ai une extension pour ça mais ne serait il pas preferable qu'Hikashop ne charge jquery que s'il n'est pas deja charge ?

merci

Please Log in or Create an account to join the conversation.

  • Posts: 83932
  • Thank you received: 13588
  • MODERATOR
8 years 10 months ago #246381

Bonjour,

Ce serait bien oui. Malheureusement, quand la fonction hikashop_loadJslib est appelée pour charger jQuery, il n'y a pas encore le jQuery de Joomla de chargé, et même certaines fois, il est chargé mais pas avec la bonne version, que ça soit par une autre extension ou le template.
Le problème, c'est qu'il n'y a pas vraiment de système solide dans Joomla pour charger des librairies JS entres les différentes extensions sans conflits. C'est pourquoi la seule solution que nous avons trouvé, qui génère le moins de soucis, est de charger notre propre jQuery lorsque c'est nécessaire. Cela peut finir avec jQuery chargé plusieurs fois sur la page et jQuery Easy permet de remédier à cela dans ces cas-là.

The following user(s) said Thank You: erickb

Please Log in or Create an account to join the conversation.

  • Posts: 2667
  • Thank you received: 68
8 years 10 months ago #246447

merci pour la réponse

j'utilise extensions.joomla.org/extension/eorisis-jquery qui est vraiment tres complet

Last edit: 8 years 10 months ago by erickb.

Please Log in or Create an account to join the conversation.

  • Posts: 846
  • Thank you received: 92
8 years 8 months ago #249643

Pour répondre à la question : si les librairies utilisées par hikashop sont interdépendante alors oui cela peu poser problèmes .
Est ce que ces interdépendances sont documentées dans le documentation hikashop ?

De façon générale : pour moi quelque soit le type d extension ( plug in , module , component .), ces extensions sont modifiables et je hésiterais pas à supprimer tous les liens vers une libraire jquery si je sais que la version jquery définit au niveau de mon template est compatible avec toutes les extensions ayant besoin de jquery .

Tous ca est un probleme de namespace ( jquery1 et jquery2 , js3 et namespace4 , requirejs ) avec javascript , jquery , YUI et

Quelques informations en vracs :

  • sync signifie bloquant la poursuite d'exécution du code tant que lo bjet subissant la fonction sync n'est par terminé
  • une librairie n 'est pas e ntotalité async ou sync seul les appels de fonctions sont sync ou async souvent configurable
  • les scripts ( content ou fichiers) sont chargés dans l ordre d' apparition dans la page sauf si defer( bug) et async(implemented ok) sont utilisés
  • 2 async s utilise pour un lien vers un fichier script ne permet plus de prédire l ordre de chargement des 2 librairires dans le cas ou il y a une interdépendance
  • DEL ->addScript( '******.js','text/javascript');
  • <jdoc:include type="head" /> insère du javascript ( lien vers fichier ou code )
  • je connaissais jQuery Easy et JB library mais pas pas eorisis .
  • .
  • Dans le joomla store il y a pour css: , js: , css/js : jsplant , js-css-control

Le seul moyen est de debugger le code javascript ( jquery ou jquery plugin ) coté client pour voir quelle est la partie du code qui bloque avec une version de jquery plus haute . Et c'est sur ....cela demande du temps.



Je me demande si async au niveau HTML tag "appel de fichier externe " a le même sens que async au niveau d 'une fonction javascript ?

Un CMS n est qu'un système de chargement de fichier ( require include) et j'ai trouvé toujours les informations a ce propos inexistantes dans la documentation joomla comme si ce qui ne fonctionne pas bien ne doit pas être documenté ... !!!! Le forum hikashop est la seule source d 'information que je trouve utile et de qualité ( le commentaire de @nicolas ici sur ce post en est encore la preuve ) par rapport au forum joomla officiel . Enfin j 'ai rarement consulté le forum dev de joomla donc je suis mal placé pour dire ça ..mais cela est mon ressenti .

nicolas wrote: Le problème, c'est qu'il n'y a pas vraiment de système solide dans Joomla pour charger des librairies JS entres les différentes extensions sans conflits.


Alors que l on est a la version joomla 3 !!! Enfin joomla est gratuit mais j'espère que les CMS payant gèrent ça bien et je n en suis pas sur car le "microsoft dll hell" n'est en fait que "version hell " ou "dependancy hell " ( voir ici et ici ) . dès que l on parle de gestion des versions tout devient plus compliqué !!!
Cordialement

Last edit: 8 years 8 months ago by lionel75.
The following user(s) said Thank You: erickb

Please Log in or Create an account to join the conversation.

  • Posts: 2667
  • Thank you received: 68
8 years 6 months ago #256687

Bonjour
je reviens la dessus car c'est vraiment un probleme de performances

est il possible pour hikashop d'avoir au moins tous les mootools (en attendant de les virer) asynchrones ? mootools-core.js et mootools-more.js ?
est ce qu'avec la version 2.6.4 on peut les virer ou un des deux ?

le script hikashopModifyQuantity est charge meme si on a aucune option de panier sur la page est il possible de ne le charger que si necessaire ?

peut on supprimer /media/com_hikashop/js/tooltip.js ?

merci

Last edit: 8 years 6 months ago by erickb.

Please Log in or Create an account to join the conversation.

  • Posts: 26251
  • Thank you received: 4039
  • MODERATOR
8 years 6 months ago #256714

Bonjour,

1 - Cela est entièrement relatif au core de Joomla (voir au template) et non à HikaShop.
2 - Comme déjà expliqué à de très nombreuses reprise ; ne pas activer les fonctionnalités qui le demande fait que les fichiers ne sont pas inclus.. Rien de nouveau depuis des années !
3 - Non
4 - Comme pour le point 2 ; n'utilisez pas la fonctionnalité et vous n'avez pas la lib.. Mais de manière générale cela va être comme le point 3 : Non

Cordialement,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

Time to create page: 0.076 seconds
Powered by Kunena Forum