Maison Java javaDidacticiel Introduction aux méthodes d'optimisation du chargement de WebView

Introduction aux méthodes d'optimisation du chargement de WebView

Mar 22, 2019 am 10:53 AM
android java

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);
Copier après la connexion

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);//网络不可用时只使用缓存 
}
Copier après la connexion

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!

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)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois 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)

Xiaomi Redmi Note 14 Pro Plus arrive en tant que premier smartphone Qualcomm Snapdragon 7s Gen 3 avec caméra Light Hunter 800 Xiaomi Redmi Note 14 Pro Plus arrive en tant que premier smartphone Qualcomm Snapdragon 7s Gen 3 avec caméra Light Hunter 800 Sep 27, 2024 am 06:23 AM

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

Le design de l'Oppo Find X8 ressemble à un croisement entre Apple iPhone 16 Pro et OnePlus Open dans les premières images Le design de l'Oppo Find X8 ressemble à un croisement entre Apple iPhone 16 Pro et OnePlus Open dans les premières images Sep 28, 2024 am 06:04 AM

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

Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

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 dévoile une nouvelle option de couleur pour la tablette de jeu Legion Y700 2024 Lenovo dévoile une nouvelle option de couleur pour la tablette de jeu Legion Y700 2024 Sep 29, 2024 am 06:05 AM

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

Programme Java pour trouver le volume de la capsule Programme Java pour trouver le volume de la capsule Feb 07, 2025 am 11:37 AM

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

Comment exécuter votre première application Spring Boot dans Spring Tool Suite? Comment exécuter votre première application Spring Boot dans Spring Tool Suite? Feb 07, 2025 pm 12:11 PM

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 Samsung Galaxy Z Fold Special Edition a été révélé pour atterrir fin octobre alors que des noms contradictoires émergent Le Samsung Galaxy Z Fold Special Edition a été révélé pour atterrir fin octobre alors que des noms contradictoires émergent Oct 01, 2024 am 06:21 AM

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

Créer l'avenir : programmation Java pour les débutants absolus Créer l'avenir : programmation Java pour les débutants absolus Oct 13, 2024 pm 01:32 PM

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.

See all articles