var u = new User()
이 문장이 실행된 후에는 u는 실제 의미도 없고 그 이상도 없는 변수입니다. 그래서 이 문제를 해결하는 방법은, 당분간 제가 생각할 수 있는 유일한 방법은 동기화 전략을 사용하는 것 뿐입니다. js가 로드될 때만 후속 js 문이 실행되는 점은 다소 아쉽고, 동기화로 인해 발생할 수 있는 브라우저 정지 문제도 당분간은 무시하도록 하겠습니다. 앞으로 더 나은 솔루션.
그렇다면 이렇게 동기화하면 어떤 이점이 있을까요?라는 질문이 생깁니다.
적어도 비동기 로딩에 비하면 단점은 없을 것 같아요. 예를 들어 일반적인 비동기 로딩은
$입니다. getScript("user .js",function(){
var u = new User();
})
이 명령문을 실행하면 함수가 실행됩니다. js는 로드될 때까지 실행되지 않습니다. 그런 다음
var u = new User();
이론적으로 user.js가 로드된 후에 모두 실행되므로 시간은 동일해야 합니다.
적어도 두 번째 코드는 Java 스타일 코드와 더 유사하므로 비즈니스와 관련되지 않은 다른 코드는 신경쓰지 마세요.
그럼 필요한 객체가 어디에 있는지, 어떻게 로드하는지 어떻게 알 수 있나요? 내가 생각할 수 있는 것은 구성 파일을 시뮬레이션하는 것뿐입니다. In.js와 같은 추가 기능이나 다른 프레임워크의 등록 기능을 사용하는 대신 구성 파일을 사용하는 이유는 무엇일까요? Java이며 나중에 수정될 수도 있습니다.
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를 얻고
만 하면 됩니다. 페이지에
저자별 최신 기사
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31