Maison interface Web js tutoriel Utilisez ajax pour modifier le contenu de la page et l'URL de la barre d'adresse sans actualiser

Utilisez ajax pour modifier le contenu de la page et l'URL de la barre d'adresse sans actualiser

May 25, 2018 am 11:52 AM
ajax 刷新 改变

Cet article présente principalement en détail la méthode d'utilisation d'ajax et window.history.pushState pour modifier le contenu de la page et l'URL de la barre d'adresse sans actualiser. Les amis dans le besoin peuvent s'y référer

Lors de la visite du désormais populaire. Google Plus, les utilisateurs prudents peuvent constater que les clics entre les pages sont demandés de manière asynchrone via ajax et que l'URL de la page change en même temps. Et il peut très bien prendre en charge l'avant et l'arrière du navigateur. Les gens ne peuvent s’empêcher de se demander : qu’est-ce qui a une fonction si puissante ?

HTML5 référence de nouvelles API, à savoir history.pushState et history.replaceState C'est grâce à cette interface que l'URL de la page peut être modifiée sans actualisation.

Différences par rapport à l'AJAX traditionnel

L'ajax traditionnel présente les problèmes suivants :

Bien que l'ajax puisse modifier le contenu de la page sans l'actualiser, il ne peut pas être modifié. URL de la page

Deuxièmement, pour une meilleure accessibilité, modifiez le hachage de l'URL après les modifications du contenu. Cependant, la méthode de hachage ne peut pas très bien gérer les problèmes d'avant et d'arrière du navigateur

Certains navigateurs ont introduit l'interface onhashchange. Les navigateurs qui ne la prennent pas en charge ne peuvent déterminer que périodiquement si le hachage a changé

. De plus, l'utilisation d'ajax est très peu conviviale pour les moteurs de recherche, et les zones explorées par les robots sont souvent vides

Afin de résoudre les problèmes causés par l'ajax traditionnel, une nouvelle API a été introduite en HTML5, à savoir : history .pushState, history.replaceState

Vous pouvez utiliser l'historique du navigateur via les interfaces pushState et replaceState et modifier l'URL de la page actuelle.

pushState consiste à ajouter l'URL spécifiée à l'historique du navigateur, et replaceState consiste à remplacer l'URL actuelle par l'URL spécifiée.

Comment appeler

var state = {
 title: title,
 url: options.url,
 otherkey: othervalue
};
window.history.pushState(state, document.title, url);
Copier après la connexion

En plus du titre et de l'url, l'objet state peut également ajouter d'autres données, par exemple : vous souhaitez également envoyer du ajax configurations Enregistrez-le.

replaceState et pushState sont similaires et aucune explication supplémentaire n'est nécessaire.

Comment répondre aux opérations avant et arrière du navigateur

L'événement onpopstate est fourni sur l'objet window L'objet state passé ci-dessus deviendra un sous-objet de l'événement, afin que vous puissiez le faire. peut obtenir le titre et l'URL stockés.

window.addEventListener('popstate', function(e){
  if (history.state){
 var state = e.state;
    //do something(state.url, state.title);
  }
}, false);
Copier après la connexion

De cette façon, vous pouvez combiner ajax et pushState pour une navigation parfaite sans actualisation.

Quelques restrictions

1 Il est inévitable qu'il ne puisse pas traverser de domaine. Pour citer un dicton classique que j'ai vu une fois sur Internet : "Si javascript peut traverser des domaines, alors cela peut être incroyable !" 2 Bien que l'objet d'état puisse stocker de nombreux attributs personnalisés, la valeur ne peut pas être un objet. .

Correspond à certains traitements back-end

Dans ce mode, en plus d'utiliser ajax pour naviguer sans rafraîchir, il faut également s'assurer que la navigation normale peut également être effectué après avoir demandé directement l'URL modifiée, le backend doit donc les gérer.

1. Un en-tête spécial peut être envoyé à ajax combiné avec pushState, tel que : setRequestHeader('PJAX', 'true').

2. Lorsque le backend obtient l'en-tête avec PJAX=true, les parties communes de la page ne seront pas affichées. Par exemple : PHP peut juger à travers les éléments suivants

Bien que l'interface n'ait que pushState, replaceState et onpopstate, elle nécessite encore beaucoup de traitement lors de son utilisation.
function is_pjax(){
 return array_key_exists('HTTP_X_PJAX', $_SERVER) && $_SERVER['HTTP_X_PJAX'] === 'true';
}
Copier après la connexion

Ce qui précède est ce que j'ai compilé pour vous. J'espère que cela vous sera utile à l'avenir.

Articles connexes :

Comment résoudre le problème d'échec ajax sur le navigateur Google Chrome

Cliquez sur chargement basé sur ajax pour en savoir plus non -rafraîchir le chargement Allez sur cette page

Deux solutions aux problèmes inter-domaines Ajax

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

6 façons d'actualiser les pages Web sur iPhone 6 façons d'actualiser les pages Web sur iPhone Feb 05, 2024 pm 02:00 PM

Lorsque vous naviguez sur le Web sur votre iPhone, le contenu chargé est temporairement stocké tant que l'application du navigateur reste ouverte. Cependant, le site Web met régulièrement à jour le contenu, donc actualiser la page est un moyen efficace d'effacer les anciennes données et de voir le dernier contenu publié. De cette façon, vous disposez toujours des dernières informations et expériences. Si vous souhaitez actualiser la page sur iPhone, l'article suivant vous expliquera toutes les méthodes. Comment actualiser les pages Web sur Safari [4 méthodes] Il existe plusieurs méthodes pour actualiser les pages que vous consultez sur l'application Safari sur iPhone. Méthode 1 : utiliser le bouton Actualiser Le moyen le plus simple d'actualiser une page ouverte sur Safari consiste à utiliser l'option Actualiser dans la barre d'onglets de votre navigateur. Si Safa

La touche d'actualisation F5 ne fonctionne pas sous Windows 11 La touche d'actualisation F5 ne fonctionne pas sous Windows 11 Mar 14, 2024 pm 01:01 PM

La touche F5 ne fonctionne pas correctement sur votre PC Windows 11/10 ? La touche F5 est généralement utilisée pour actualiser le bureau ou l'explorateur ou recharger une page Web. Cependant, certains de nos lecteurs ont signalé que la touche F5 actualisait leur ordinateur et ne fonctionnait pas correctement. Comment activer l’actualisation F5 dans Windows 11 ? Pour actualiser votre PC Windows, appuyez simplement sur la touche F5. Sur certains ordinateurs portables ou de bureau, vous devrez peut-être appuyer sur la combinaison de touches Fn+F5 pour terminer l'opération d'actualisation. Pourquoi l’actualisation F5 ne fonctionne-t-elle pas ? Si l'appui sur la touche F5 ne parvient pas à actualiser votre ordinateur ou si vous rencontrez des problèmes sous Windows 11/10, cela peut être dû au verrouillage des touches de fonction. D'autres causes potentielles incluent le clavier ou la touche F5

Comment modifier le prix de livraison de départ de la version marchand de Meituan Takeout Comment modifier le prix de livraison de départ de la version marchand de Meituan Takeout Mar 27, 2024 pm 07:20 PM

Dans le processus de fonctionnement de Meituan Takeout Merchant Edition, la fixation du prix de livraison de départ est un maillon crucial. Un prix de livraison initial raisonnable peut non seulement aider les commerçants à contrôler les coûts, mais également à augmenter dans une certaine mesure le montant des commandes, augmentant ainsi les revenus globaux. Cependant, de nombreux commerçants ne savent pas grand-chose sur la manière de modifier le prix minimum de livraison. Ainsi, dans l'article suivant, l'éditeur de ce site vous proposera un guide détaillé de fixation des prix de départ pour les commerçants. Si vous souhaitez en savoir plus, rendez-vous à l'article suivant pour le découvrir ! Dans Meituan Takeout Merchant Center, connectez-vous et entrez les paramètres du magasin, puis sélectionnez la gestion du magasin. Dans le menu de navigation en haut de la page de gestion du magasin, sélectionnez les informations de livraison, puis cliquez sur Ajouter une zone de livraison pour terminer l'opération. Une fois que vous avez ajouté un emplacement, les frais d'expédition correspondants apparaîtront automatiquement. Après avoir finalisé votre commande, vous recevrez

Comment résoudre l'erreur 403 rencontrée par la requête jQuery AJAX Comment résoudre l'erreur 403 rencontrée par la requête jQuery AJAX Feb 20, 2024 am 10:07 AM

Titre : Méthodes et exemples de code pour résoudre les erreurs 403 dans les requêtes jQuery AJAX L'erreur 403 fait référence à une demande selon laquelle le serveur interdit l'accès à une ressource. Cette erreur se produit généralement parce que la demande manque d'autorisations ou est rejetée par le serveur. Lorsque vous effectuez des requêtes jQueryAJAX, vous rencontrez parfois cette situation. Cet article explique comment résoudre ce problème et fournit des exemples de code. Solution : Vérifiez les autorisations : assurez-vous d'abord que l'adresse URL demandée est correcte et vérifiez que vous disposez des autorisations suffisantes pour accéder à la ressource.

Comment actualiser rapidement une page Web ? Comment actualiser rapidement une page Web ? Feb 18, 2024 pm 01:14 PM

L'actualisation des pages est très courante dans notre utilisation quotidienne du réseau. Lorsque nous visitons une page Web, nous rencontrons parfois certains problèmes, comme la page Web qui ne se charge pas ou ne s'affiche pas anormalement, etc. À ce stade, nous choisissons généralement d'actualiser la page pour résoudre le problème, alors comment actualiser la page rapidement ? Discutons des touches de raccourci pour l'actualisation de la page. La touche de raccourci d'actualisation de page est une méthode permettant d'actualiser rapidement la page Web actuelle via des opérations au clavier. Dans différents systèmes d'exploitation et navigateurs, les touches de raccourci pour l'actualisation de la page peuvent être différentes. Ci-dessous, nous utilisons le W commun

Comment résoudre l'erreur 403 de la requête jQuery AJAX Comment résoudre l'erreur 403 de la requête jQuery AJAX Feb 19, 2024 pm 05:55 PM

jQuery est une bibliothèque JavaScript populaire utilisée pour simplifier le développement côté client. AJAX est une technologie qui envoie des requêtes asynchrones et interagit avec le serveur sans recharger la page Web entière. Cependant, lorsque vous utilisez jQuery pour effectuer des requêtes AJAX, vous rencontrez parfois des erreurs 403. Les erreurs 403 sont généralement des erreurs d'accès refusé par le serveur, probablement en raison de problèmes de politique de sécurité ou d'autorisation. Dans cet article, nous verrons comment résoudre la requête jQueryAJAX rencontrant une erreur 403.

Comment obtenir des variables de la méthode PHP en utilisant Ajax ? Comment obtenir des variables de la méthode PHP en utilisant Ajax ? Mar 09, 2024 pm 05:36 PM

L'utilisation d'Ajax pour obtenir des variables à partir de méthodes PHP est un scénario courant dans le développement Web. Grâce à Ajax, la page peut être obtenue dynamiquement sans actualiser les données. Dans cet article, nous présenterons comment utiliser Ajax pour obtenir des variables à partir de méthodes PHP et fournirons des exemples de code spécifiques. Tout d’abord, nous devons écrire un fichier PHP pour gérer la requête Ajax et renvoyer les variables requises. Voici un exemple de code pour un simple fichier PHP getData.php :

Comment résoudre le problème de l'erreur 403 jQuery AJAX ? Comment résoudre le problème de l'erreur 403 jQuery AJAX ? Feb 23, 2024 pm 04:27 PM

Comment résoudre le problème de l’erreur 403 jQueryAJAX ? Lors du développement d'applications Web, jQuery est souvent utilisé pour envoyer des requêtes asynchrones. Cependant, vous pouvez parfois rencontrer le code d'erreur 403 lors de l'utilisation de jQueryAJAX, indiquant que l'accès est interdit par le serveur. Cela est généralement dû aux paramètres de sécurité côté serveur, mais il existe des moyens de résoudre le problème. Cet article explique comment résoudre le problème de l'erreur 403 jQueryAJAX et fournit des exemples de code spécifiques. 1. faire

See all articles