javascript 동적 로드

요 며칠 동안 별로 많은 일이 없 었 습 니 다.좋 습 니 다.인정 합 니 다.제 가 요 며칠 동안 회사 의 프로젝트 를 하고 싶 지 않 았 기 때 문 입 니 다.제 가 갑 작 스 러 운 생각 을 했 기 때 문 입 니 다.사실은 갑 작 스 러 운 생각 도 아니 고 예전 의 생각 에 대한 실현 이 라 고 할 수 있 습 니 다.바로 JS 를 자바 로 쓰 는 것 입 니 다.
지금도 In.js 와 같은 JS 동적 로 딩 프레임 워 크 가 많 습 니 다.하지만 이런 것 은 내 가 원 하 는 작성 방식 이 아니다.내 생각 을 말 해 보 자.
자바 코드 먼저 주세요.
import Biz.User;
User u = new User();
u.show();

절차 에 따라 도 급,실례 화,호출 이다.
JS 는 패 키 지 를 만 들 수 없 거나 코드 의미 의 패 키 지 는 보통 페이지 에서 script 라벨 을 도입 합 니 다.
그러면 일단 이렇게 써 야 된다 고 가정 해 보 세 요.
Using("User");
var u = new User();
u.show();

그렇다면 JS 에서 가능 할 까?
한 마디 한 마디 분석,물론 전 제 는 페이지 가 script 태그 로 user.js 를 불 러 오지 않 으 면 의미 가 없다 는 것 이다.
첫 마디
Using("User");

왜 Using 을 사용 하 는 지 는 물론 제 이름 의 생각 일 뿐 입 니 다.C\#를 연상 시 킬 수 있 습 니 다.사용 하 는 것 은 using 입 니 다.빌려 온 것 일 뿐 입 니 다.
Using 에 기 록 된 것 은 당연히 내 가 필요 로 하 는 대상 User 이다.말 그대로 나 는 당연히 Using("User")이 라 고 썼 다.내부 에서 어떻게 실현 되 었 는 지 는 말 할 것 도 없고,적어도 생각 은 이렇다.
키 워드 를 User 로 쓸 수 없 기 때 문 입 니 다.이런 건 못 하 겠 어.
두 번 째 문장 과 세 번 째 문장
var u = new User(); 
u.show();

매우 정상 적 입 니 다.바로 매우 일반적인 실례 화 와 함수 호출 입 니 다.유일 하 게 이해 하지 못 하 는 것 은 User 대상 이 어디에서 왔 습 니까?그럼 당연히 첫 번 째 가이드 백 에서 가 져 온 거 죠.
 
절차 가 바로 이런 절차 이다.그렇다면 과연 실현 할 수 있 느 냐 없 느 냐 의 관건 은 첫 마디 에 있다.과연 가방 이 성공 할 수 있 을 지,어떻게 가방 을 유도 해 야 할 지 말 하 는 것 이다.
 
script 태그 에서 영감 을 끌 어 옵 니 다.
그 러 니까
Using("User");

한 마디 쓴 셈 이다
<script type="text/javascript" src="user.js">script>

지금 이렇게 보면 이렇게 하 는 것 이 의미 가 있 습 니까?script 라벨 을 JS 동적 으로 쓰기 위해 서 도입 한 것 입 니까?아니면 몇 글자 만 적 게 쓰기 위해 서?
물론 안 돼,이렇게 하 는 것 은 무의미 해!그럼 어떻게 해 야 돼 요?
효율 적 으로
한 페이지 가 N 다 js 파일 을 불 러 올 필요 가 있 을 때 다음 과 같 습 니 다.
<script type="text/javascript" src="jquery.min.js">script>
<script type="text/javascript" src="view.js">script>
<script type="text/javascript" src="register.js">script>
<script type="text/javascript" src="validate.js">script>
<script type="text/javascript" src="user.js">script>
<script type="text/javascript" src="order.js">script>
<script type="text/javascript" src="type.js">script>

잠깐 만,잠깐 만.
무 섭 지 않 습 니까?그것 은 상당히 무 섭 습 니 다.그리고 후기 유 지 는 높 은 비용 이 필요 합 니 다.몇 페이지 가 있 으 면 몇 페이지 를 수정 해 야 할 수도 있 습 니 다.그렇다면 페이지 에 관건 적 인 몇 개의 js 파일 만 도입 하면 다른 파일 은 모두 동적 으로 불 러 오 는 방식 을 사용 합 니까?
예 를 들 어 우 리 는 jquery 파일 만 불 러 오고 호출 해 야 합 니 다.
$.getScript("user.js",function(){});

이렇게 하면 우 리 는 페이지 파일 에 들 어 오기 만 하면 된다.
<script type="text/javascript" src="jquery.min.js">script> 

됐다.
그렇다면 이런 서법 의 나 쁜 점 은 어디 에 있 습 니까?코드 보기
$.getScript("user.js",function(){
    $.getScript("order.js",function(){
        $.getScript("type.js",function(){
            $.getScript("validate.js",function(){
                // and so on.. 
            }); 
        }); 
    }); 
});

PS:In.js 의 watch 함 수 를 사용 하면 이런 상황 을 피 할 수 있 습 니 다.이것 은 본 박문 의 고려 범위 에 있 지 않다.
노안 이 요?코드 를 맞 추 시 겠 습 니까?포맷 도구 가 있 더 라 도 닫 힌 괄호 를 어떤$.getScript 와 대응 하 시 겠 습 니까?싫 지.
그럼 자바 의 패키지 형식 을 본 떠 서 나 옵 니 다.
Using("User");
Using("Order");
Using("Type");
Using("Validate");
// and so on..

혹은 네가 원한 다 면,너 는 할 수 있다.
Using("User","Type","Order","Validate",...);

서법 문 제 는 상관없다.물론 첫 번 째 방법 을 추천 합 니 다.뚜렷 합 니 다.
패 키 지 를 유도 한 후 모든 용법 은 아무런 끼 워 넣 지 않 고 정상적으로 사용 된다.
var u = new User();
var o = new Order();
// and so on..

하지만 한 가지 질문 을 드 리 겠 습 니 다.비동기 로 딩 이 Using("XXX")에서 실 행 될 경우
Using("User");
Using("Order");
Using("Type");
Using("Validate");
// and so on..

이 단락 에서 나 는 4 개의 파일 을 비동기 로 불 러 와 야 한다.비록 비동기 이지 만 좀 번 거 로 울 수 밖 에 없다.그리고 4 개의 링크 를 만들어 야 합 니 다.JS 를 합병 하 시 겠 다 면 괜 찮 습 니 다.그리고 Using 할 때 저 는 대상 을 사용 할 필요 가 없습니다.이 럴 때 자원 을 너무 낭비 하 는 것 이 아 닙 니까?
이 문제 에 대해 나의 해결 방법 은 바로 hibenate 를 배우 고 로드 를 지연 시 키 며 필요 에 따라 로드 하 는 것 이다.
그럼 어떻게 할 까요?
Using("User");

이 럴 때 는 불 러 오지 않 고 불 러 오지 않 고 무엇 을 합 니까?당연히 mock,즉 시 뮬 레이 션 대상 으로 돌아 갑 니 다.사용자 에 게 먼저 사용 하고 사용자 가 진정 으로 이 대상 을 사용 해 야 할 때 만 필요 한 js 를 불 러 옵 니 다.그 러 니까
Using("User"); //               User  ,      mock
var u = new User(); //             User    ,           JS  ,          User  

비동기 로 딩 은 현재 실행 중인 상태 와 충돌 하지 않 는 다 는 것 을 잘 알 고 있 습 니 다.즉,
var u = new User();

이 말 이 실 행 된 후에 u 는 실제 의미 가 없 는 변수 일 뿐이다.그렇다면 이 문 제 를 어떻게 해결 해 야 할 지,내 가 잠시 생각 한 방법 은 동기 화 전략 을 채택 할 수 밖 에 없다.js 가 불 러 온 후에 실 행 된 js 문 구 를 실행 해 야 합 니 다.이곳 은 약간 유감 입 니 다.또한 동기 화 가능 한 브 라 우 저 가사 도 비교적 심각 한 문제 입 니 다.이런 문 제 를 고려 하지 않 고 앞으로 더 좋 은 방법 으로 해결 할 수 있 기 를 바 랍 니 다.
그 문제 가 나 왔 습 니 다.이렇게 동기 화하 면 어떤 우세 가 있 습 니까?
나 는 어떤 장점 이 있 는 지 모 르 겠 지만,적어도 비동기 로드 를 비교 해 보면 열세 가 없 을 것 이다.예 를 들 어 정상 적 인 비동기 로드 는
$.getScript("user.js",function(){
    var u = new User();
});

이 문 구 를 실행 하 는 것 만으로 function 에 실행 하려 면 본질 적 으로 user.js 로드 가 끝나 야 실 행 됩 니 다.그러면 대비 합 니 다.
var u = new User();

이론 적 으로 시간 은 상당 해 야 한다.왜냐하면 user.js 로드 가 끝 난 후에 야 실 행 된 것 이기 때문이다.
적어도 두 번 째 는 자바 식 코드 처럼 보이 기 때문에 다른 비 업무 관련 코드 는 신경 쓸 필요 가 없다.
 
그렇다면 필요 한 대상 이 어디 에 있 는 지,어떻게 불 러 오 는 지 어떻게 알 수 있 을 까?제 가 생각 할 수 있 는 것 은 설정 파일 을 모 의 하 는 것 입 니 다.왜 설정 파일 을 사용 하 는 지,인.js 가 add 함수 나 다른 프레임 워 크 를 사용 하 는 register 와 유사 한 함수 가 아 닙 니 다.아마도 저 는 설정 파일 을 사용 하고 싶 을 뿐 입 니 다.자바 와 같 고 후기 에 수정 하면 결합 이 더 풀 릴 것 입 니 다.
Using.Config = {
    "User" : "/js/user"     //     .js        JS   
}

전체적인 사고방식 은 대략 이렇다.나 는 그 기초 위 에서 약간의 제약 을 했다.예 를 들 어 명칭 공간 에 가입 했다.
var u = new Using.Modules.User();

이렇게 하면 전역 변 수 를 줄 일 수 있 고 필요 하 다 면 모든 대상 이 가 질 수 있 는 공통성 을 삽입 하여 유사 한 인 코딩 을 만 들 때의 중복 인 코딩 을 줄 일 수 있 습 니 다.
물론 네 임 스페이스 를 사용 하지 않 는 것 도 지원 한다.
이 제약 의 효력 을 해결 하기 위해 클래스 생 성 제약 을 위해 Class.create 함 수 를 추가 하 였 습 니 다.
Using.Class.create("User",function(){
}).property({
}).static({
}).namespace(Using.Modules);

여기
create(클래스 이름,구조 함수)
property(클래스 의 속성)
static(클래스 의 정적 속성)
namespace(네 임 스페이스)
 
여기 서 설명 하 는데 왜 MVC 형식 에 가입 하지 않 습 니까?
나중에 저 는 MVC 를 원한 다 는 것 을 알 게 되 었 습 니 다.그러면 몇 가지 유형 간 의 동적 유지 보 수 를 하거나 만 들 때 Using 이라는 유형 으로 자동 으로 유지 하 는 것 을 알 게 되 었 습 니 다.아직 좋 은 해결 방법 이 생각 나 지 않 았 기 때문에 가입 하지 않 고 자신 이 종 류 를 만 들 고 자신 이 유지 할 수 밖 에 없 었 습 니 다.
 
위의 글 자 를 통 해 마지막 으로 Using.js 를 얻 을 수 있 습 니 다.
그리고 페이지 에 하나만 들 어 오 면 돼 요.
<script type="text/javascript" src="using.js">script>

이렇게 해서 이제 쓸 수 있어 요.
Using("jquery");
Using("User");

$("#ID").click(function(){
    var user = new User();
    user.name = "xx";
    user.show();
});

 
다음으로 전송:https://www.cnblogs.com/itsusing/archive/2012/08/19/Using.html

좋은 웹페이지 즐겨찾기