Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drop de JQuery phase 2: Industrialisation - Gestion de Ajax #6046

Closed
artragis opened this issue Feb 25, 2021 · 1 comment · Fixed by #6116
Closed

Drop de JQuery phase 2: Industrialisation - Gestion de Ajax #6046

artragis opened this issue Feb 25, 2021 · 1 comment · Fixed by #6116
Labels
C-Front Concerne l'interface du site S-Évolution Ajoute de nouvelles fonctionnalités S-Refactorisation Améliore le code existant sans forcément ajouter de nouvelle fonctionnalité

Comments

@artragis
Copy link
Member

artragis commented Feb 25, 2021

(Créé à la suite de #5786 )

La version 30 du site commence à virer JQuery dans plusieurs modules qui ne se servent globalement que du dom.

Cependant il faut comprendre que notre basecode se sert d'autres choses intéressantes de JQ : le ajax.

Globalement l'objet xhr est aujourd'hui commun à tous les navigateurs que nous supportons. Les polyfills de JQ ne nous sont pas utiles de ce fait.

Le but de ce ticket est de trouver une solution technique qui soit satisfaisante pour :

  • Utiliser l'API fetch quand c'est possible car elle semble plus simple et maintenable, je n'ai aucune idée d'une potentielle atteinte aux perfs
  • Avoir un objet d'utilitaire Ajax pour faire nos requêtes POST/PUT/DELETE quand on le peut sachant que pour les deux premier la payload peut être :
    • un json buildé programmatiquement
    • une copie de form.data envoyée non encodée en JSON.
  • Ces requêtes nécessitent qu'on mettent la valeur du cssrftoken qui est toujours récupéré de la même manière mais le code est dupliqué partout
  • Une documentation

Ce ticket est donc un moyen de préparer la migration pas de l'opérer même si, pour fournir un exemple vous pouvez prendre un des fichiers du site et le migrer.

@artragis artragis added C-Front Concerne l'interface du site S-Refactorisation Améliore le code existant sans forcément ajouter de nouvelle fonctionnalité S-Évolution Ajoute de nouvelles fonctionnalités labels Feb 25, 2021
@Genroa
Copy link

Genroa commented Feb 26, 2021

fetch remplit très bien tous les besoins (et est standard partout), avec éventuellement quelques helpers maison pour simplifier l’écriture, et sa performance est bien supérieure à JQuery. Et si vraiment il faut plus, Axios fait bien le café. :)

artragis added a commit to artragis/zds-site that referenced this issue May 8, 2021
Situphen added a commit that referenced this issue Jul 1, 2021
* Create an ajax basic library for zds

* fix #6046: remove jquery & ajax from content-helps.js

* lint

* Fix le bug d'ajax à cause de X-Requested-with

* Documentation

* Improve doc

* Update doc/source/front-end/helpers-js.rst

Co-authored-by: Situphen <Situphen@users.noreply.github.com>

* Update doc/source/front-end/helpers-js.rst

Co-authored-by: Situphen <Situphen@users.noreply.github.com>

Co-authored-by: Situphen <Situphen@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-Front Concerne l'interface du site S-Évolution Ajoute de nouvelles fonctionnalités S-Refactorisation Améliore le code existant sans forcément ajouter de nouvelle fonctionnalité
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants