


Tutoriel sur la prévention des sauts de page et l'actualisation de la page actuelle après avoir utilisé la requête Fetch POST asynchrone
Oct 15, 2025 pm 04:12 PMLorsqu'ils utilisent l'API ??fetch?? de JavaScript pour effectuer des requêtes POST asynchrones, les développeurs rencontrent souvent le problème que la page saute de manière inattendue au point de terminaison de l'API une fois la requête terminée. Cet article détaillera comment empêcher le comportement de navigation par défaut dans les pages en définissant le type de bouton sur ? bouton ? ou en utilisant ? event.preventDefault() ? dans l'événement de soumission de formulaire, et en utilisant la méthode ? location.reload() ? pour actualiser la page actuelle une fois la requête ? fetch ? réussie, obtenant ainsi une expérience utilisateur transparente.
Causes courantes et solutions aux sauts de page après des requêtes asynchrones
Lorsque vous utilisez l'API fetch pour envoyer des données au backend, en particulier lors de la mise à jour des données via des requêtes POST, nous espérons généralement qu'une fois les données mises à jour, l'utilisateur restera toujours sur la page actuelle et que le contenu de la page reflétera les dernières modifications des données. Cependant, une frustration courante est que le navigateur peut accéder automatiquement à l'URL cible de la requête POST (c'est-à-dire le point de terminaison de l'API) une fois la requête terminée. Il ne s’agit généralement pas d’un comportement souhaité car il interrompt l’expérience utilisateur pour les applications d’une seule page ou les mises à jour partielles.
Les principales raisons de ce comportement sont :
- Le comportement par défaut du bouton?: L'élément
- Soumission de formulaire débloquée?: même si le bouton ne se trouve pas dans le formulaire ou est créé dynamiquement via JavaScript, la page peut sauter si son comportement finit par simuler une soumission de formulaire.
Pour résoudre ce problème, nous devons suivre deux étapes principales?: empêcher la navigation dans les pages et actualiser la page actuelle une fois la demande réussie.
1. Empêcher le comportement de navigation dans les pages par défaut
Selon le cas d'utilisation du bouton, il existe deux manières principales d'empêcher la navigation dans les pages?:
Méthode 1?:?spécifiez explicitement le type de bouton en tant que bouton
Si votre bouton est utilisé pour déclencher une fonction JavaScript plut?t que de soumettre l'intégralité du formulaire, la méthode la plus simple consiste à définir son attribut de type sur "bouton". Cela indiquera clairement au navigateur que le bouton ne doit pas déclencher le comportement traditionnel de soumission de formulaire.
Exemple HTML?:
<!-- La balise span d'origine peut déclencher indirectement certains comportements, nous nous concentrons sur le bouton interne --> <span onclick="addGuestName(this)"> <button class="addPaxName btn btn-xs btn-warning" type="button">AJOUTER</button> </span>
En ajoutant type="button", cliquer sur ce bouton ne fera plus sauter la page.
Méthode 2?:?empêcher le comportement par défaut dans l'événement de soumission de formulaire (event.preventDefault())
Si votre bouton se trouve réellement à l'intérieur d'une balise
Exemple JavaScript?:
document.getElementById('guestForm').addEventListener('submit', function(event) { event.preventDefault(); // Empêche le comportement de soumission par défaut du formulaire // Appelez votre fonction de récupération asynchrone ici // updateGuestName(paxid, name); });
Dans votre code d'origine, le bouton déclenche la fonction updateGuestName via addEventListener('click', ...), et le bouton est créé dynamiquement. Si le bouton n'est pas explicitement spécifié avec type="button" et que son élément parent ou ancêtre est un
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT
Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Usefilter_var () tovalidateemailsyntaxandcheckdnsrr () toverifydomainmxrecords.example: $ email = "user@example.com"; if (f ilter_var ($ e-mail, filter_validate_email) && checkdnsrr (explosage ('@', $ e-mail) [1], 'mx')) {echo "ValidAndDeliverableMail & Qu

Cet article explique en profondeur comment utiliser les instructions de cas pour effectuer une agrégation conditionnelle dans MySQL pour atteindre la sommation conditionnelle et le comptage de champs spécifiques. Grace à un cas de système d'abonnement pratique, il montre comment calculer dynamiquement la durée totale et le nombre d'événements en fonction de l'état des enregistrements (tels que "end" et "annuler"), surmontant ainsi les limites des fonctions de somme traditionnelles qui ne peuvent pas répondre aux besoins d'une agrégation conditionnelle complexe. Le tutoriel analyse en détail l'application des instructions de cas en détail et souligne l'importance de la fusion lorsqu'il s'agit des valeurs nulles possibles de la jointure gauche.

UseUnserialize (serialize ($ obj)) FordopcopyingwhenallDataisSerializable; Sinon, implémentez__Clone () TomanuallyDuplicatesedObjectsAndavoidSharedReferences.

UseArray_merge () toCombineArrays, écrasant leduplicatestringKeysAndreIndexingNumericKeys; ForsimplecCaTencatenation, en particulierInphp5.6, usethesplatoperator [... $ array1, ... $ array2].

NamespacesInphporganizEcodeAndPreventnamingConflictsBygroupingClasses, Interfaces, Functions et ConstantsunSunSaspecificName.2.DefineanamespaceusingTheNamesPaceSpaceKeyWordAtTopofaFile, suiviByTheNamesPacename, Suchasapp \ Controlers...USUSEUSEKEYWORDTOI

ToupDateAdatabasereCorDinPhp, FirstConnectUsingPDoOrmysQLi, theNusepreparedStationStoExECUSEASECURSQLUPDATEQUERY.example: $ pdo = newPDO ("MySql: host = localhost; dbname = votre_database", $ username, $ mot de passe); $ sql = "dameussem =.

La méthodiette () méthodiste axée sur le point de réviser la mise en ?uvre de l'inscription, ce qui permet de faire de la maintenance à la qualité de qualité et

UsePathinfo ($ nom de fichier, pathinfo_extension) togetThefileExtension; itreliabblyHandlesMultipledototsEdGasases, renvoyantTheExtension (par exemple, "pdf") oranemptystringefNoneExists.
