Limitations de taille des URL du protocole de données
Dans le domaine de la navigation Web, le protocole data: fonctionne comme un signifie intégrer des données dans l'URL elle-même, généralement en utilisant le codage Base64. Bien que la spécification de l'URI des données elle-même n'impose aucune contrainte de taille, elle permet aux applications d'établir leurs propres limites.
Limites populaires du navigateur Web :
-
Chrome : impose une limite de 2 Mo pour les URI de données dans le document actif. Cependant, la limite globale s'aligne sur la capacité de stockage arbitraire de la mémoire blob : 2 Go pour les systèmes x64 (hors ChromeOS et Android) et total_physical_memory / 5 pour les autres.
-
Firefox : possède une limite sans contrainte pour les URI de données.
-
IE 9 et Edge : Appliquez une limite de taille de 4 Go.
-
Safari et Safari mobile : Les limitations spécifiques à ces navigateurs restent indéterminées.
Alternatives :
Dans les scénarios où la limite d'URI des données s'avère insuffisante, des approches alternatives exist :
-
URL Blob : Créées à l'aide de l'URL.createObjectURL() et de l'API URL de l'API File, elles fournissent une méthode pour stocker de plus grandes quantités de données (jusqu'à 500 Mo dans Chrome ).
-
Autres options : FileSaver.js, StreamSaver.js et JSZip offrent des possibilités supplémentaires pour gérer les besoins de transfert de données volumineux.
Détection et implications :
- Modernizr propose une solution pour détecter la prise en charge des URI de données au-delà de 32 Ko.
- Les URI de données qui dépassent les limites du navigateur peuvent entraîner des résultats défavorables, tels que le message « Aw, Message d'erreur "Snap".
En comprenant ces limitations et en exploitant les alternatives appropriées, les développeurs peuvent utiliser efficacement les URL de protocole de données pour répondre à leurs exigences de traitement des données.
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!