Données et feuilles de calcul · CSV Nettoyeur
Comment un navigateur nettoie un grand CSV dans un Web Worker sans le télécharger
· Comment ça marche
csv traitement du navigateur confidentialité
"Pas de téléchargement" ressemble à du marketing jusqu'à ce que vous voyiez comment cela fonctionne. Cet article explique comment un navigateur lit un fichier localement, pourquoi un Web Worker maintient la page réactive, ce qui limite la taille du fichier et comment vérifier que rien n'est envoyé.
Un export volumineux et un outil Web : qu'arrive-t-il habituellement à votre fichier et pourquoi un téléchargement n'est pas une nécessité technique
Le choix d'un fichier sur une page Web peut ressembler à un téléchargement, mais la sélection et la transmission sont des opérations de navigateur distinctes. CSV Cleaner reçoit un objet File après que le visiteur l'a choisi, valide le type autorisé et la taille configurée, puis lit son texte à l'intérieur de la page. Aucun téléchargement n'est nécessaire pour la détection des délimiteurs ou le nettoyage des lignes.
L'enregistrement de produit faisant autorité indique que les lignes sont analysées sur l'appareil, tandis que l'enregistrement d'outil restreint la revendication : son code ne fait aucune requête transportant des données de fichier, du texte collé ou une sortie générée. Les requêtes de script d'analyse divulguées constituent un trafic de page distinct, le langage de confidentialité doit donc les distinguer du chemin de traitement CSV.
Lire un fichier sans l'envoyer : comment l'API de fichiers du navigateur donne à une page l'accès aux octets de votre appareil
L'implémentation appelle `file.text()` plutôt que l'API FileReader nommée dans le plan. Cette promesse se résout avec une chaîne JavaScript disponible sur la page. Un fichier JSON prend une branche de conversion distincte ; le texte délimité est envoyé sous forme de message au travailleur avec un choix de délimiteur facultatif.
La lecture locale n'accorde pas au site un accès général au lecteur. La page reçoit uniquement le fichier sélectionné via le contrôle du navigateur. Il stocke un nom de base pour le téléchargement éventuel, conserve la table actuelle dans la mémoire des onglets et efface cet état lorsque le visiteur demande une réinitialisation.
La page utilise File.text() pour lire les octets sélectionnés sans téléchargement
L'analyse s'exécute dans un Web Worker créé paresseusement lors du premier appel. Le travailleur détecte le délimiteur, analyse les caractères via la même machine à états utilisée par les tests et renvoie l'en-tête, les lignes, les avertissements et l'indicateur de nomenclature complétés. Des étiquettes de progression sont envoyées autour de ces étapes afin que l'interface principale puisse continuer à se mettre à jour.
Le déchargement de l'analyse empêche cette boucle de caractères synchrone de monopoliser le thread principal de l'interface utilisateur. Il ne rend pas l'analyse gratuite ou diffusée en streaming ; le texte source et le tableau renvoyé occupent toujours de la mémoire. Sur pagehide, le client abandonne un appel en vol et met fin au travailleur afin qu'un onglet en arrière-plan ne le conserve pas indéfiniment.
La mémoire, et non un plafond de téléchargement, est la limite : pourquoi le plafond dépend de votre appareil et de votre navigateur plutôt que d'un quota de serveur
Le plan indiquait que la mémoire plutôt qu'un plafond de téléchargement était la limite, mais l'interface fournie valide explicitement un maximum de 50 MB. Ce seuil figure à la fois dans la configuration et dans le code du panneau. Les ressources des appareils et des navigateurs peuvent toujours tomber en panne en dessous d'un maximum théorique, mais l'article ne doit pas effacer une protection délibérée du produit.
Les preuves du référentiel ne peuvent pas non plus fournir un plafond de lignes universel, un multiplicateur de mémoire ou un temps de traitement. Le contenu du fichier modifie le nombre et la longueur des chaînes créées. L’attente défendable est une entrée limitée plus une analyse des travailleurs, et non un chiffre de performance qui n’a jamais été mesuré sur le matériel du visiteur.
L'interface applique une limite de fichiers 50 MB en plus des contraintes de périphérique
Pour vérifier la réclamation étroite de non-téléchargement, ouvrez les outils de développement après le chargement de la page, effacez la liste Réseau, choisissez un échantillon distinctif inoffensif et effectuez un nettoyage. Inspectez les nouvelles URL, méthodes et corps de requête pour ce marqueur. Un téléchargement CSV peut apparaître comme une action de navigateur local plutôt que comme une demande adressée à un point de terminaison de conversion.
L'inspection de la source complète l'observation : le chemin de chargement utilise le texte du fichier, le travailleur importe le code de l'analyseur local et downloadText crée la sortie. L'inspection d'exécution détecte les ajouts de déploiement que la source seule peut manquer. Ni l’un ni l’autre ne prouve ce que font les extensions de navigateur ou le système d’exploitation, alors gardez la conclusion limitée au chemin de traitement de ToolAcre.
Exemple concret : nettoyer une exportation volumineuse tout en surveillant le panneau réseau et l'utilisation de la mémoire, avec à quoi s'attendre sur un périphérique à faible mémoire
Utilisez un échantillon généré confortablement en dessous de la limite documentée, avec suffisamment de lignes pour rendre les progrès visibles, mais sans données client. Regardez l'activité du travailleur et prévisualisez-la, appliquez Couper les espaces, puis téléchargez. Enregistrez si une demande contient le marqueur unique ; ne publiez pas de tableaux de mégaoctets par seconde ou de mémoire fabriqués de toutes pièces.
Sur un appareil contraint, la seule prédiction sûre est que les ressources disponibles diffèrent. La limite configurée empêche les fichiers plus volumineux d'entrer dans ce chemin, tandis qu'une pression de mémoire ordinaire du navigateur reste possible. Si un onglet de test devient instable, fermez les autres travaux, réduisez l'échantillon et conservez l'original plutôt que de promettre une solution de contournement universelle.
Exemple concret : vérifier un échantillon inoffensif sans inventer de mémoire ou de chiffres de synchronisation
Le nettoyage local ne peut pas retirer un fichier précédemment envoyé à un autre service, et il ne peut pas traiter une entrée rejetée par le garde de taille. Il n'isole pas non plus la page des extensions, de l'historique du presse-papiers ou des logiciels malveillants présents sur la machine. Il s’agit de limites de menaces distinctes en dehors de la mise en œuvre de l’analyseur et du travailleur.
L'outil conserve un historique d'annulation allant jusqu'à vingt états de table au cours de la session, ce qui consomme également de la mémoire locale. L'effacement réinitialise la table et les contrôles ; quitter la page abandonne et met fin au travailleur. Ce comportement est un détail opérationnel utile, mais il ne constitue pas une garantie d'effacement sécurisé de la mémoire du navigateur ou de l'appareil.
Le traitement sur l'appareil est vérifiable : comment ToolAcre CSV Cleaner s'exécute dans votre navigateur et ne télécharge jamais votre fichier.
Le chemin complet vérifié est la sélection, `File.text()`, l'analyse des travailleurs, les transformations de lignes pures, la sérialisation et le téléchargement du navigateur. La configuration identifie la limite d'admission réelle 50 MB et la déclaration de confidentialité sépare explicitement les demandes d'analyse divulguées du contenu de la feuille de calcul. C’est plus fort qu’un slogan car chaque frontière peut être inspectée.
Exécutez la vérification du réseau avec des données non sensibles chaque fois que les détails du déploiement sont importants pour votre organisation. Les preuves de la source actuelle et de la session observée soutiennent une affirmation précise : l'opération CSV de ToolAcre n'a pas de point de terminaison de téléchargement et n'envoie aucun contenu de table. Precision garde la déclaration utile sans prétendre que l'ensemble du navigateur est hors ligne.