Maison > cadre php > Laravel > Comment utiliser pjax pour l'accélération des pages dans les applications Laravel

Comment utiliser pjax pour l'accélération des pages dans les applications Laravel

藏色散人
Libérer: 2021-06-26 09:05:01
avant
1782 Les gens l'ont consulté

Remarque : PHPHub utilise pjax pour accélérer le chargement des pages Web. Cet article est une note rédigée après le développement de cette fonctionnalité

Recommandations associées : "Tutoriel Laravel"

.

Qu'est-ce que Pjax

        .--.
       /    \
      ## a  a
      (   '._)
       |'-- |
     _.\___/_   ___pjax___
   ."\> \Y/|<&#39;.  &#39;._.-&#39;
  /  \ \_\/ /  &#39;-&#39; /
  | --&#39;\_/|/ |   _/
  |___.-&#39; |  |`&#39;`
    |     |  |
    |    / &#39;./
   /__./` | |
      \   | |
       \  | |
       ;  | |
       /  | |
 jgs  |___\_.\_
      `-"--&#39;---&#39;
Copier après la connexion

L'adresse du projet est ici, l'introduction officielle :

pushState + ajax = pjax

Veuillez consulter le détail explication Zhihu à propos de ce problème, ou vérifiez vous-même les informations

Pour le décrire simplement, il s'agit d'utiliser la technologie ajax pour récupérer le document du serveur, mettre à jour la page actuelle sans actualiser la page du navigateur, et il peut s'assurer que les fichiers js et css de la page ne seront pas chargés à plusieurs reprises, puis utiliser la fonction assets fournie par le navigateur pour mettre à jour l'URL et garantir que l'utilisateur peut revenir au page historique en cliquant sur le bouton de retour. pushState

Remarque : Tous les navigateurs ne prennent pas en charge pushState. Veuillez consulter ici pour connaître la compatibilité du navigateur. Lorsque le navigateur est incompatible, la méthode de navigation d'origine sera. automatiquement utilisé. Pour y accéder.

Pourquoi utiliser Pjax

Parce qu'il n'est pas nécessaire de rafraîchir la page entière, et

les fichiers n'ont pas besoin d'être rechargés, ce qui améliore grandement la vitesse de chargement de la page .assets

Installation du serveur

rcrowe/Turbo

Utiliser le package rcrowe/Turbo .

Installation

#rcrowe/Turbo

dans

composer.json Ajouter sous les propriétés : require

"rcrowe/turbo": "0.2.*"
Copier après la connexion

puis

ou composer updatecomposer install

Configurer

#Providers

Modifier le fichier

, dans les options app/config/app.php tableau Ajoutez : providers

"Turbo\Provider\Laravel\TurboServiceProvider",
Copier après la connexion

Téléchargez pjax.js

dans le dossier

publicjs

wget https://raw.github.com/defunkt/jquery-pjax/master/jquery.pjax.js
Copier après la connexion

puis chargez ce fichier dans le modèle

<script src="{{ cdn(&#39;js/jquery.pjax.js&#39;) }}"></script>
Copier après la connexion

sur la dernière page Appel :

$(document).ready(function(){    $(document).pjax(&#39;a&#39;, &#39;body&#39;);});
Copier après la connexion

L'explication du code ci-dessus consiste à intercepter tous les événements de clic de la balise

Si le navigateur actuel prend en charge a, envoyez une requête ajax et apportez le. paramètre pjax ._pjax=body

Si tout se passe bien, vous pouvez voir une requête similaire à celle-ci dans le débogueur de Chrome :

À ce stade, la configuration a été terminé avec succès.

Ajouter une animation de chargement#

L'étape suivante consiste à ajouter une animation de chargement de page, l'effet est le suivant :

Ajoutez

#nprogress

Utilisez rstacruz/nprogress pour réaliser.

La méthode d'ajout consiste à télécharger le fichier, puis à ajouter

et nprogress.js à la page : nprogress.css

    <script src=&#39;nprogress.js&#39;></script>    <link rel=&#39;stylesheet&#39; href=&#39;nprogress.css&#39;/>
Copier après la connexion

Appel #

Modifiez le code ci-dessus. Le code modifié est le suivant :

$(document).ready(function(){    $(document).pjax(&#39;a&#39;, &#39;body&#39;);    $(document).on(&#39;pjax:start&#39;, function() {
      NProgress.start();  });  $(document).on(&#39;pjax:end&#39;, function() {
      NProgress.done();
      self.siteBootUp();  });});
Copier après la connexion
Dans ce cas, il y aura un effet sympa à chaque fois que vous cliquerez sur le. page

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!

Étiquettes associées:
source:cnblogs.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal