Yui 모듈 개발 원리 상해
<br> YUI().use('module1', function (Y) { ... });
<br>
다음은 위의 이 코드에 무슨 일이 일어날지 분석해 봅시다.1) YUI는 먼저 모듈에 존재하는 의존 관계를 분석하여 URL을 만듭니다.http://localhost:3000/yui/combo?mudule2.js&module1.js.module2 주의하세요.js는modul1에 있습니다.js 앞.2) 동적script 태그를 만들고 서버에 js 파일 요청하기
var script = document.createElement('script');
script = 'http://localhost:3000/yui/combo?mudule2.js&module1.js';
if(script.readyState) {
//IE
script.onreadystatechange = function () {
if (script.readyState == "loaded" || script.readyState == "complete"){
script.onreadystatechange = null;
//
}
};
} else {
// IE
script.onload = function () {
//
};
}
document.body.append(script);
3) 서버측에서 클라이언트가 보낸 요청을 감지하고 URL을 분석한 다음module2를 찾기 시작한다.js와module1.js 두 개의 js 파일과 두 개의 파일을 순서대로 하나의 파일로 조합하여 클라이언트에게 되돌려줍니다.마지막으로 전송된 js 파일의 내용은 다음과 같습니다.
//module2.js
YUI.add('module2', function (Y) { Y.module2 = {}; Y.module2.name = 'module2'; }, '1.0.0', requires: []);
//module1.js
YUI.add('module1', function (Y) { Y.module1 = {}; Y.module1.name = 'module1'; }, '1.0.0', requires: ['module2']);
4) 클라이언트가 되돌아오는 js를 받아들여 해석을 시작합니다. 즉, 안에 있는 YUI에서의dd 방법을 실행합니다. 실행 과정은 대체로 다음과 같습니다.
YUI.modules = {};
//module2
YUI.modules.push(function (Y) { Y.module2 = {}; Y.module2.name = 'module2'; });
//module1
YUI.modules.push(function (Y) { Y.module1 = {}; Y.module1.name = 'module1'; });
5) 해석이 완료되면 단계 2의 onload 방법(IE의 onreadystatechange 방법)을 자동으로 트리거하고 다음은 단계 2의 "예약"에 있는 코드입니다.
for(var i = 0, len = YUI.modules.length; i < len; i++) {
// export api this ;this YUI , this = new YUI();
YUI.modules[i](this);
}
//callback YUI().use
// , this , callback module1 module2 api
callback(this);
이상은 유이의 모듈화 개발에 대한 간단한 소개를 빌려 유이의 실제 과정은 위보다 훨씬 복잡하다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.