오랫동안
JavaScript의 단점에 대한
페이지를 작성해 왔습니다. 개발에서 가장 짜증나는 것은 Javascript 코드입니다.그래서 오늘은 자바스크립트의 단점에 대해 이야기해보겠습니다.
먼저 몇 가지 기본적인 문제에 대해 이야기해 보겠습니다.
1: 호환성이 낮습니다
. Netscape Navigator, mosaic, HotJava 등 WWW에는 많은 브라우저가 있지만 각 브라우저는 JavaScript를 지원하는 브라우저와 JavaScript를 완전히 지원하지 않는 브라우저를 탐색해야 합니다. 홈 페이지에서 JavaScript 스크립트를 사용하는 경우 효과에 일정한 차이가 있으며 때로는 표시되지 않을 수도 있습니다.
결과적으로 JavaScript 개발자는 브라우저마다 다른 버전을 개발해야 하는 경우가 많습니다. 작업량이 사실상 늘어났고, 기본적으로 모두 반복적인 작업입니다. 이것이 우리가 보고 싶지 않은 것입니다
2: 메모리 누수 발생
JavaScript는 메모리 관리 언어입니다. 즉, JavaScript에는 패킷 수집 기능이 내장되어 있으므로 참조 경로에서 더 이상 사용하지 않는 변수를 추출하고 이러한 변수에서 사용하는 메모리를 재할당할 수 있습니다.
이는 기본 작동 원리로는 괜찮지만 모델 객체와 뷰 요소가 서로 참조할 때 이러한 순환 참조로 인해 메모리 사용량을 최적화하기 위해 이 기능에 의존할 수는 없습니다. 원칙적으로 개체가 0이면 요소도 0이지만 요소에서 개체로의 역방향 참조가 있는 경우 패킷 수집기는 이러한 개체를 건드리지 않습니다.
이제 문제가 발생합니다. 파일 개체 모델에서 파일 트리의 모든 DOM 노드는 다른 개체에서 참조되는지 여부에 관계없이 트리의 다른 요소에서 참조될 수 있습니다. 따라서 DOM 노드에 의해 역방향으로 참조되는 패킷 수집기에 표시된 모든 객체는 이 방향에서 비어 있어야 합니다. 그렇지 않으면 객체의 메모리가 할당된 상태로 유지됩니다. 실제로 프로그래머들은 종종 이를 무시합니다. 많은 대규모 웹게임의 메모리가 오픈 후 급격히 증가하는 이유도 바로 이 때문이다.
3: 스트리밍 미디어는 지원되지 않습니다
. 다른 플레이어를 삽입하는 방법만 사용할 수 있습니다.
Javascript의 원래 디자인 목표는 "웹 페이지를 움직이게 만드는 것"입니다. 이는 달성되었으며 몇 가지 획기적인 발전이 있었습니다. 그러나 "이동"은 단지 "이동"일 뿐이므로 충분하지 않습니다. Javascript가 Rich Application에 직면하면 다소 무력합니다.
이제 자바스크립트 개발을 논의하려면 자바스크립트에만 국한되지 말고 HTML(DHTML), DOM, 자바스크립트, CSS를 함께 고려해야 한다. 브라우저 애플리케이션의 관점에서 생각해 보세요("브라우저 애플리케이션"이라는 단어를 만들어낸 것을 용서해주세요).