Bug #17161
message "les résultats ne peuvent pas être chargés" pendant le chargement d'une grosse source select2 ... alors que c'est pas vrai.
0%
Description
Sur une source en select2 vers une grosse source CSV de 3Mo (qui met donc du temps répondre) : quand on tapes quelques lettres ça affiche "les résultats ne peuvent pas être chargés"
... mais puis 2 secondes après ils apparaissent.
Fichiers
Révisions associées
select2: set a 250ms delay for debouncing requests (#17161)
Historique
Mis à jour par Thomas Noël il y a presque 7 ans
Mon impression : c'est quand on tape les lettres vite, entre deux ça "coupe" la requête en cours, et donc, erreur. Un truc comme ça.
Mis à jour par Thomas Noël il y a presque 7 ans
- Fichier Capture d_écran de 2017-06-23 16-44-19.png Capture d_écran de 2017-06-23 16-44-19.png ajouté
Ici j'ai tapé "par" vite : requête lors du "p", remplacée par une autre quand j'ai tapée le "a", remplacée par une dernière quand j'ai tape le "r"
Le message "les résultats ne peuvent pas être chargés" s'affiche dès que je tape le "a"
Mis à jour par Frédéric Péters il y a presque 7 ans
Pour moi c'est la détection de l'annulation des requêtes qui foire, ça marche avec :
// Attempt to detect if a request was aborted // Only works if the transport exposes a status property - if ($request.status && $request.status === '0') { + if ($request.status === 0) { return; }
Mis à jour par Thomas Noël il y a presque 7 ans
Et dans un élan de générosité pour éviter de trop taper passerelle, j'ajouterais bien un delay:250 dans la construction du widget select2 (https://select2.github.io/options.html#a-request-is-being-triggered-on-every-key-stroke-can-i-delay-th:
--- a/wcs/qommon/form.py +++ b/wcs/qommon/form.py @@ -1832,6 +1832,7 @@ var wcs_select2_%(id)s = $("#form_%(id)s").select2({ # setting up the select2 widget continues here r += htmltext(""" + delay: 250, dataType: 'json', data: function (params) { return {
Mis à jour par Thomas Noël il y a presque 7 ans
- Fichier 0002-select2-set-a-250ms-delay-for-debouncing-requests-17.patch 0002-select2-set-a-250ms-delay-for-debouncing-requests-17.patch ajouté
- Fichier 0001-select2-fix-handling-of-aborted-queries-17161.patch 0001-select2-fix-handling-of-aborted-queries-17161.patch ajouté
- Statut changé de Nouveau à En cours
- Patch proposed changé de Non à Oui
Mis à jour par Frédéric Péters il y a presque 7 ans
- Fichier 0001-select2-fix-handling-of-aborted-queries-17161.patch 0001-select2-fix-handling-of-aborted-queries-17161.patch ajouté
Joie du js; pour être sûr j'ai modifié pour faire (=== 0 || === '0'). Mais surtout, select2.min.js…
-{d.status&&"0"===d.status||e.trigger("results:message",... +{(0===d.status||"0"===d.status)||e.trigger("results:message",...
Ok pour les 250ms.
Mis à jour par Thomas Noël il y a presque 7 ans
- Statut changé de En cours à Résolu (à déployer)
Ack et push des deux
commit 01768bf2ba7fed44ec6797d5fe778536a5f2faf7 Author: Thomas NOEL <tnoel@entrouvert.com> Date: Fri Jun 23 17:47:21 2017 +0200 select2: set a 250ms delay for debouncing requests (#17161) commit 03f23bc5b82e4f45876a603539b5b32e44365312 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Mon Jun 26 10:50:18 2017 +0200 select2: fix handling of aborted queries (#17161)
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
select2: fix handling of aborted queries (#17161)