• # Des exemples des choses compliquées

    Posté par (site web personnel, Mastodon) . En réponse au message Pourquoi c'est dur de coder un navigateur Internet ?. Évalué à 9. Dernière modification le 19 février 2014 à 13:04.

    On pourrait trouver beaucoup à dire, mais déjà :

    • tu as remarqué qu'un navigateur va rarement juste de dire "ta page est pourrie, j'affiche rien, na!" ? ben déjà un parser aussi tolérant, je pense que c'est bien chiant à écrire
    • il y a de multiples versions d'HTML, et les normes, ben elles sont pas courtes quand même
    • il faut aussi parser les CSS, concilier ça avec les vestiges de présentation présents dans certaines versions d'HTML, tout élément du DOM doit donc être thémable génériquement
    • il faut intégrer un moteur JS, lui aussi tolérant, qui puisse manipuler l'intégralité du DOM, des propriétés, et que le tout se reflète directement sur l'affichage
    • l'interface des navigateurs leaders sur le marché n'est pas aussi simple que "une fenêtre et quelques boutons", d'autant que pour beaucoup ils sont présents sur plusieurs plateformes, donc il faut s'abstraire des spécificités
    • un navigateur web doit aussi causer au serveur, gérer les connexions donc, accessoirement parler les différentes versions d'HTTP, prendre en compte les fonctionnalités que peut offrir un serveur
    • il doit aussi avoir un mécanisme de cache efficace
    • il faut qu'il puisse exécuter des modules externes (flash, java, ou autres plugins)... mais le tout en garantissant la sécurité de l'utilisateur (donc isoler tous ces bouts)
    • il doit afficher un rendu le plus vite possible : pas juste lire le code, préparer le rendu, puis l'afficher, mais rendre le maximum de choses dès que possible et enrichir au fil de l'eau à la réception de données supplémentaires