나는 오랫동안 기술 기사를 쓰지 않았습니다. 이 과정에서 일상의 기록이 기술 기사 작성을 대체했음을 알 수 있습니다. 열정 아니면 불, 하지만 지금은 ...
최근 업계에서 휠이라고 불리는 JS 플러그인을 작성했습니다. 좋은지 아닌지는 당신에게 달려 있지 않습니다. 다들 잘 쓰시거나 안 쓰시거나.
물론 제가 직접 사용하고 있기 때문에 다른 Ajax 프레임워크의 작성 방법을 차용할 수는 없습니다. 현재 버전은 버전 1에서 상향 통합된 결과이므로 완전히 이해하시기 바랍니다. 내부 구조의 경우 버전 1부터 시작할 수 있습니다.
이제 전반적인 디자인 구조에 대해 이야기해 보겠습니다. 버전 1은 친구를 모으고 정리하는 방법입니다. 기본 작성 방법은 nativeAjax를 호출하고 해당 방법 안에 두는 것입니다. 두 번째는 ajax 속성입니다. 두 개는 성공적인 함수이고 세 번째는 오류 함수입니다.
nativeAjax(postOption,function(data){ // 3.1、请求成功回调 console.log(data); },function(error){ // 3.2、请求失败回调,返回HTTP状态码 console.log(error); });
위의 디자인 패턴을 기반으로 먼저 다시 캡슐화합니다. ajax의 서비스 속성이 고정되면 모든 ajax 속성을 객체에 바인딩할 수 있습니다. 지정된 객체에 직접 바인딩되는 경우 실제로 매개변수를 주고 받기만 하면 되므로 많은 비용이 절약됩니다. 프로세스는 훨씬 간단하고 유연성은 그리 높지 않습니다. 내부적으로 캡슐화하려면 유연성이 높고 재사용 가능한 속성이 필요하므로 속성을 함수 함수에 넣기 때문에 이 포인터를 사용하여 ajax 속성을 내부적으로 바인딩하여 호출하는 동시에 다음을 수행할 수 있습니다. 플러그인이 다시 캡슐화되어 있는 것으로 알고 있습니다. 이것이 제가 이해하는 이번 버전의 내부 구조의 디자인 패턴입니다.
버전 2 rewrap-ajax가 호출하는 외부 구조는 jq의 JQ.fn 속성과 유사하므로 체인 구조의 객체 속성 메서드에서 사용하므로 내부적으로는 Wrap.service(`ajax`를 사용합니다.