Há muito tempo
que escrevo uma páginasobre as deficiências do JavaScript
. A coisa mais irritante no desenvolvimento é o código Javascript.Então hoje vou falar sobre as deficiências do Javascript.
Vamos falar sobre algumas questões básicas primeiro.
1: Baixa compatibilidade
Existem muitos navegadores na WWW, como Netscape Navigator, Mosaic e HotJava, etc., mas cada navegador suporta JavaScript em uma extensão diferente. um navegador com Ao usar scripts JavaScript na página inicial, haverá uma certa lacuna no efeito e às vezes pode nem ser exibido.
Como resultado, os desenvolvedores de JavaScript geralmente precisam desenvolver versões diferentes para navegadores diferentes. A carga de trabalho aumentou virtualmente e é basicamente um trabalho repetitivo. Isso é o que não queremos ver
2: Causa vazamento de memória
JavaScript é uma linguagem de gerenciamento de memória. Isso significa que o JavaScript possui recursos integrados de coleta de pacotes, para que possa extrair variáveis que não são mais usadas por caminhos de referência e realocar a memória usada por essas variáveis.
Isso é bom como princípio básico de funcionamento, mas por causa dessas referências circulares quando objetos de modelo e elementos de visualização fazem referência entre si, você não pode confiar nesse recurso para otimizar o uso de memória. Em princípio, se o objeto for zero, o elemento será zero, mas se houver referências inversas de elementos para objetos, o coletor de pacotes não tocará nesses objetos.
Agora surge o problema: no modelo de objeto de arquivo, qualquer nó DOM na árvore de arquivos pode ser referenciado por outros elementos da árvore, independentemente de ser referenciado por outros objetos! Portanto, qualquer objeto marcado no coletor de pacotes que seja referenciado retroativamente por um nó DOM deve estar vazio nesta direção, caso contrário sua memória permanecerá no estado alocado. Na verdade, os programadores muitas vezes ignoram isso. É por isso que a memória de muitos jogos da web em grande escala aumenta rapidamente após serem abertos.
3: Não há suporte para streaming de mídia
. Você só pode usar o método de incorporação de outros players.
O objetivo original do design do Javascript é "fazer as páginas da web se moverem". Isto foi alcançado e houve alguns avanços. Porém, “mover” é apenas “mover”, o que não é suficiente. Quando o Javascript enfrenta Rich Application, ele fica um tanto impotente.
Agora, se você quiser discutir o desenvolvimento de javascript, não deve se limitar a Javascript, mas deve considerar HTML (DHTML), DOM, Javascript e CSS em conjunto. Pense nisso da perspectiva de um aplicativo de navegador (perdoe-me por inventar a palavra "aplicativo de navegador").