depuis longtemps
une pagesur les lacunes de JavaScript
. La chose la plus ennuyeuse dans le développement est le code Javascript.Alors aujourd’hui je vais parler des défauts de Javascript.
Parlons d’abord de quelques questions fondamentales.
1 : Faible compatibilité
. Il existe de nombreux navigateurs sur le Web, tels que Netscape Navigator, Mosaic et HotJava, etc., mais chaque navigateur prend en charge JavaScript dans une mesure différente. Les navigateurs qui prennent en charge JavaScript et ceux qui ne prennent pas entièrement en charge JavaScript doivent naviguer. un navigateur avec Lors de l'utilisation de scripts JavaScript sur la page d'accueil, il y aura un certain écart dans l'effet, et parfois il peut même ne pas être affiché.
Par conséquent, les développeurs JavaScript doivent souvent développer différentes versions pour différents navigateurs. La charge de travail a pratiquement augmenté et il s’agit essentiellement de tâches répétitives. C'est ce que nous ne voulons pas voir
2 : Provoquer une fuite de mémoire
JavaScript est un langage de gestion de mémoire. Cela signifie que JavaScript dispose de fonctionnalités intégrées de collecte de paquets, ce qui lui permet d'extraire les variables qui ne sont plus utilisées par les chemins de référence et de réallouer la mémoire utilisée par ces variables.
C'est un bon principe de fonctionnement de base, mais en raison de ces références circulaires lorsque les objets du modèle et les éléments de vue se référencent mutuellement, vous ne pouvez pas compter sur cette fonctionnalité pour optimiser votre utilisation de la mémoire. En principe, si l'objet est nul, l'élément est nul, mais s'il existe des références arrière des éléments aux objets, le collecteur de paquets ne touchera pas ces objets.
Maintenant, le problème se pose : dans le modèle objet fichier, n'importe quel nœud DOM de l'arborescence de fichiers peut être référencé par d'autres éléments de l'arborescence, qu'il soit référencé ou non par d'autres objets ! Par conséquent, tout objet marqué dans le collecteur de paquets et référencé en arrière par un nœud DOM doit être vide dans cette direction, sinon sa mémoire restera dans l'état alloué. En fait, les programmeurs l’ignorent souvent. C'est pourquoi la mémoire de nombreux jeux Web à grande échelle augmente rapidement après leur ouverture.
3 : Il n'y a pas de support pour le streaming multimédia
. Vous ne pouvez utiliser que la méthode d'intégration d'autres lecteurs.
L'objectif initial de conception de Javascript est de « faire bouger les pages Web ». Cet objectif a été atteint et des progrès ont été réalisés. Cependant, « bouger » n'est qu'un « bouger », ce qui ne suffit pas. Lorsque Javascript fait face à une application riche, il est quelque peu impuissant.
Maintenant, si vous souhaitez discuter du développement de Javascript, vous ne devez pas vous limiter à Javascript, mais considérer conjointement HTML (DHTML), DOM, Javascript et CSS. Pensez-y du point de vue d'une application de navigateur (pardonnez-moi d'avoir inventé le mot « application de navigateur »).