2010-01-08 3 views
2

JavaScript에 왜 혼란스러운 API가 있는지 궁금합니다. 브라우저간에 일관성이 없기 때문에 양식 입력의 각 유형에서 가치를 얻는 다른 방법이 있으며 실수를 용인하지 않습니다. jQuery는 API가 훨씬 쉽기 때문에 내 인생을 바 꾸었습니다. 자바 스크립트 제작자가 왜 처음부터 API를 설정하지 않았습니까?JavaScript는 왜 혼란스러운 API를 가지고 있습니까?

+9

하나의 회사 (Netscape)를 만들었고 가장 경쟁자 (Microsoft)가 잘못 작성하여 표준화되지 않았기 때문에 다른 변형에 대해 아무 것도 할 수 없을 때까지. –

+1

이 질문을 닫는 것에 동의하지 않습니다. 프로그래밍과 관련하여 합법적입니다. –

+0

Carl과 완전히 동의합니다. 그것은 기술 관련 질문이며 우리 모두 OP가 요점을 가지고 있음을 어느 정도 알고 있습니다. –

답변

12

JavaScript API 자체는 브라우저간에 일관되며 ECMA , 원래 Netscape에 의해 개발되었지만). 브라우저 간의 차이점은 DOM (Document Object Model)입니다. DOM은 다른 브라우저 인 IE와 Netscape에 의해 독자적으로 개발되었지만 현재는 IE, Mozilla 및 다른 사람들이 개발했습니다. W3C는 차이점을 통합하고 공통 표준을 만들려고 노력했습니다. 이전 버전과의 호환성을 위해 이전의 차이점은 그대로 유지됩니다. 그리고 예, jQuery는 DOM을보다 쉽게 ​​만드는 데 많은 도움이되었습니다.

1

대부분은 브라우저 전쟁의 잔재라고 생각합니다. Javascript는 마이크로 소프트와 넷스케이프 사이의 총체적인 전쟁으로 이루어진 매우 귀찮은 역사를 가지고 있습니다. Javascript는 실제로 매우 좋은 언어입니다. 몇 가지 중요한 디자인 실수가 있지만 주위를 해결할 수 있습니다. API에 관해서는 모든 복잡성을 숨기고 가장 적절한 API를 사용하는 우수한 랩핑 라이브러리를 사용할 수 있습니다.

중요한 제안 사항은 다음과 같습니다. 그것과 싸우거나 다른 것으로 가면으로 사용하지 마십시오. 그것의 결점으로 그것을 포용하십시오. 일단 당신이 그것들을 안다면, 당신은 더 이상 그들을 밟지 않을 것이고, 어떤 것이 물고기처럼 보이면 쉽게 그 문제를 발견 할 것입니다.

6

자바 제작자는 자바 스크립트가 언어가 아닌 API이므로 API를 설정하지 않았습니다.

당신이 참조하는 것은 문서 조작 API 인 DOM (Document Object Model)입니다. 이것은 W3C에 의해 규정 된 표준이며 브라우저의 동작은 브라우저간에 일관되어야합니다.

불행히도 일부 부품이 잘못 지정되었거나 일부 부품이 브라우저 공급 업체에서 잘못 구현되었습니다. 또한 공급 업체는이 API를 표준에 추가 할 수는 없지만 매우 인기가있는 독점 확장 (예 : 해당 시간에 document.all과 같은)으로 확장합니다.

그래서 오늘날의 브라우저 API는 일관성이 없습니다.

1

이 직접 귀하의 질문에 대답하지 않지만 :

많은 사람들은 사이 브라우저 불일치에 의해 방해된다. 소수의 사람들이 자신의 JavaScript 코드의 차이점을 없애는 데 정말로 능숙하지만, 대부분 시간을 절약 할 여력이 없습니다. 이것이 왜 당신을 위해 더러운 일을 할 수있는 프레임 워크가 그렇게 많은지입니다. JQuery이 가장 인기가 있다고 생각합니다. 두통에 많은 아스피린을 삼키는 대안으로 추천 해 드리고 싶습니다.

관련 문제