Introduction aux méthodes d'optimisation du chargement de WebView
Cet article vous apporte une introduction à la méthode d'optimisation du chargement de WebView. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.
Optimisation du chargement de WebView
Lorsque la fréquence d'utilisation de WebView devient fréquente, l'optimisation de tous ses aspects devient de plus en plus importante. Ce que vous pouvez savoir, c'est qu'à chaque fois que nous chargerons une page H5, il y aura beaucoup de demandes. En plus de la requête de l'URL principale HTML elle-même, les fichiers JS, CSS, de polices et les images référencés en externe par le HTML sont tous des requêtes HTTP indépendantes, bien que les requêtes soient simultanées, lorsque le nombre total de pages Web atteint un certain niveau. , plus Le temps d'analyse et de rendu du navigateur, ainsi que le temps de chargement global du Web, deviennent très longs. Plus il y a de fichiers demandés en même temps, plus le trafic sera consommé. Ensuite, l'optimisation du chargement devient très importante. Je n'ai aucune autre expérience dans ce domaine. Il y a en gros trois aspects :
L'un est la question de la localisation des ressources
Tout d'abord, il est clair qu'avec le Due to actuel. Dans des conditions de réseau, la vitesse d'obtention des ressources du serveur via le réseau est bien plus lente que leur lecture locale. Parler de diverses stratégies d'optimisation ignore en fait le fait que « nécessiter un chargement » est la plus grande pierre d'achoppement à l'amélioration de la vitesse. Notre première idée est donc de localiser certaines ressources plus lourdes telles que js, css, images et même HTML lui-même. Chaque fois que ces ressources sont chargées, elles sont lues et chargées localement. Elles peuvent être simplement mémorisées comme "save · Get · Update". ".
1. "Enregistrer" - regroupez les ressources lourdes ci-dessus dans un fichier apk et récupérez-le depuis le local à chaque fois que le fichier correspondant est chargé. Vous ne pouvez pas non plus le conditionner, le télécharger et le stocker dynamiquement lors du premier chargement et à des intervalles ultérieurs, et stocker tous les fichiers de ressources dans le répertoire des ressources Android
2 "Get" - Réécrire la réponse WebResource de WebViewClient The ShouldInterceptRequest(WebView ; view, WebResourceRequest request) intercepte la requête correspondante via une certaine méthode d'identification (telle qu'une expression régulière), lit la ressource correspondante à partir du local et la renvoie
3. les mises à jour des ressources locales régulièrement ou sous forme de notifications API pour garantir que les ressources locales sont à jour et disponibles.
La seconde est la question de la mise en cache
Si vous n'adoptez pas ou n'adoptez pas entièrement la première idée de localisation des ressources, alors votre cache WebView doit être activé (bien que cette idée soit différente de la première idée) Il y a chevauchements).
WebSettings settings = webView.getSettings(); settings.setAppCacheEnabled(true); settings.setDatabaseEnabled(true); settings.setDomStorageEnabled(true);//开启DOM缓存 settings.setCacheMode(WebSettings.LOAD_DEFAULT);
Lorsque le réseau est normal, la stratégie de mise en cache par défaut est adoptée et le cache est chargé lorsque le cache peut être obtenu et n'a pas expiré. Sinon, les ressources sont obtenues via le réseau pour réduire. le nombre de requêtes réseau pour la page.
Il convient de mentionner ici que lorsque nous utilisons souvent WebView pour afficher des pages dans des applications, nous ne voulons pas que l'utilisateur ait l'impression qu'il visite une page Web. Parce que s’il y a trop de pages Web dans notre application et que nous donnons aux utilisateurs le sentiment qu’ils visitent des pages Web, notre application perdra son sens. (Je veux dire, pourquoi les utilisateurs n’utilisent-ils pas directement le navigateur ?)
Donc, à l’heure actuelle, la question de la mise en cache hors ligne mérite notre attention. Nous devons permettre aux utilisateurs de continuer à utiliser notre application même s'il n'y a pas d'Internet, au lieu d'être confrontés à une page qui correspond à l'erreur réseau dans le navigateur, même si les opérations qu'ils peuvent effectuer sont très limitées.
Mon idée ici est que, sous réserve d'activer la mise en cache, WebView détecte les changements de réseau lors du chargement de la page. Si le réseau de l'utilisateur est soudainement déconnecté lors du chargement de la page, nous devrions modifier la stratégie de mise en cache de WebView.
ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); if(networkInfo.isAvailable()) { settings.setCacheMode(WebSettings.LOAD_DEFAULT);//网络正常时使用默认缓存策略 } else { settings.setCacheMode(WebSettings.LOAD_CACHE_ONLY);//网络不可用时只使用缓存 }
Puisqu'il y a un cache, il doit y avoir un contrôle du cache. De la même manière, nous devons également établir un mécanisme de contrôle du cache pour vider ou mettre à jour le cache régulièrement ou en acceptant les notifications du serveur.
La troisième consiste à retarder le chargement et l'exécution de js
Dans WebView, le rappel de onPageFinished() signifie l'achèvement du chargement de la page. Cependant, cette méthode ne sera déclenchée qu'après l'exécution du script JavScript. Si la page que nous souhaitons charger utilise JQuery, elle ne sera rendue que lorsque l'objet DOM aura été traité et $(document).ready(function() {}. ) a été exécuté et affiche la page. C'est inacceptable, nous devons donc charger paresseux Js. Bien sûr, cette partie est le travail du front-end Web.
Cet article est terminé ici. Pour un contenu plus passionnant, vous pouvez faire attention à la colonne Vidéo du didacticiel Java du site Web PHP chinois !
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

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.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

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)

Le Redmi Note 14 Pro Plus est désormais officiel en tant que successeur direct du Redmi Note 13 Pro Plus de l'année dernière (375 $ sur Amazon). Comme prévu, le Redmi Note 14 Pro Plus est en tête de la série Redmi Note 14 aux côtés du Redmi Note 14 et du Redmi Note 14 Pro. Li

Historiquement, Oppo a actualisé sa série phare « Find X » à la fin de l'hiver ou au début du printemps, à l'exception du Find X original annoncé en juin 2018. À cette fin, les Find X7 et Find X7 Ultra ont à peine plus de six mois. à ce point. H

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Lenovo se prépare à lancer le Legion Y700 2024 le 29 septembre en Chine. Cette nouvelle tablette de jeu Android affrontera la RedMagic Nova, et la société a déjà confirmé presque toutes les spécifications de l'appareil. Maintenant, quelques heures avant le plein

Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4

Spring Boot simplifie la création d'applications Java robustes, évolutives et prêtes à la production, révolutionnant le développement de Java. Son approche "Convention sur la configuration", inhérente à l'écosystème de ressort, minimise la configuration manuelle, allo

Le lancement du très attendu pliable « Special Edition » de Samsung a pris une autre tournure. Ces dernières semaines, les rumeurs concernant le soi-disant Galaxy Z Fold Special Edition sont devenues plutôt silencieuses. Au lieu de cela, l’accent s’est déplacé vers la série Galaxy S25, y compris

Java est un langage de programmation populaire qui peut être appris aussi bien par les développeurs débutants que par les développeurs expérimentés. Ce didacticiel commence par les concepts de base et progresse vers des sujets avancés. Après avoir installé le kit de développement Java, vous pouvez vous entraîner à la programmation en créant un simple programme « Hello, World ! ». Une fois que vous avez compris le code, utilisez l'invite de commande pour compiler et exécuter le programme, et « Hello, World ! » s'affichera sur la console. L'apprentissage de Java commence votre parcours de programmation et, à mesure que votre maîtrise s'approfondit, vous pouvez créer des applications plus complexes.
