2011-02-01 5 views
3

브라우저 창 하나의 탭에서 여러 개의 자바 스크립트 인터프리터 (엔진)를 실행할 수 있습니까? 방법?하나의 브라우저 탭에 여러 개의 자바 스크립트 인터프리터

iframe을 조사했지만 자바 스크립트 인터프리터의 별도 인스턴스를 호출 할 수 없었습니다.

+0

왜해야합니까? IFrame은 일반적으로 다소 엉망입니다. 당신의 문제에 대한 더 나은 해결책이있을 수도 있습니다. – Raynos

답변

2

각 페이지마다 고유 한 글로벌 환경이 있습니다. 관련 페이지는 다양한 방법으로 연결됩니다 (window.parent, 프레임 요소 등). 상위 페이지에 태그의 콘텐츠 (또는 10 년 넘게 수행하지 않은 이전 스타일의 프레임 세트 설정 :-)의 보조 페이지가 포함 된 경우 프레임의 각 페이지는 고유 한 window을가집니다. 객체 및 프레임 워크, 도구 등의 고유 한 사본

document.getElementById("whatever")과 같은 작업을 수행 할 때 호출되는 전역 컨텍스트로 제한됩니다. 마찬가지로 각 프레임에는 다양한 JavaScript "원시"생성자의 자체 복사본이있는 자체 JavaScript 환경이 있습니다. 즉, 한 프레임의 "배열"은 다른 프레임의 "배열"과 구별되는 개체입니다.

웹 작업자에 대한 @Jarrod N의 언급은 여러분에게 큰 관심사 일 수 있습니다.

4

Web Workers을 볼 수 있습니다. Javascript의 이러한 파티션 실행은 상호 작용 방식이 매우 한정적입니다.

+2

와우, 당신은 매일 새로운 것을 배웁니다. 나는이 +1에 비틀 거 렸기 때문에 기쁩니다. – tobyodavies

0

Pointy가 말한 것처럼 각각의 고유 한 페이지에는 고유 한 글로벌 환경이 있습니다. 따라서 iframe에는 자체 자바 환경이 있습니다.

기본 페이지에서 호출하기 전에 iframe의 자바 스크립트/웹 페이지가 완전히로드 될 때까지 기다리지 않아 iframe을 사용한 테스트가 실패했습니다.

p.s. WebWorkers는 약간 복잡하고 내가 원하는 프로젝트에 대한 지원이 적습니다. 그것은 미래의 프로젝트를위한 좋은 해결책 인 것처럼 보입니다.

관련 문제