>  기사  >  웹 프론트엔드  >  JQuery의 확장 사용법에 대한 자세한 소개 및 사용

JQuery의 확장 사용법에 대한 자세한 소개 및 사용

巴扎黑
巴扎黑원래의
2017-07-09 16:45:171848검색



JQuery의 확장 메서드:
JQuery의 확장 메서드는 플러그인을 작성할 때 일반적으로 사용되는 메서드입니다. 이 메서드에는 몇 가지 오버로드된 프로토타입이 있습니다.
1. Jquery의 확장 메서드 프로토타입은 다음과 같습니다.  

extend(dest,src1,src2,src3...);

이것은 src1, src2, src3...을 dest로 병합하는 것을 의미합니다. 반환 값은 병합된 dest 이 방법은 병합 후 dest의 구조를 수정하는 것을 볼 수 있습니다. 병합된 결과를 얻고 싶지만 dest 구조를 수정하고 싶지 않은 경우 다음과 같이 사용할 수 있습니다.

varnewSrc=$.extend({},src1,src2,src3... )// 즉, "{}"를 대상 매개변수로 사용하세요.

이런 식으로 src1, src2, src3...을 병합할 수 있고 병합된 결과는 newSrc에 반환됩니다. 예:

varresult=$.extend({},{name:"Tom",age:21},{name:" Jerry",sex:"Boy"})

그런 다음 합쳐진 결과

result={이름: "제리 ",age:21,sex:"Boy"}

즉, 다음 매개변수가 이전 매개변수와 이름이 같은 경우 다음은 매개변수는 이전 매개변수 값을 덮어씁니다.

$.extend(settings, options);
//설정과 옵션을 병합하고 병합된 결과를 설정으로 반환합니다. 이는 옵션이 설정을 상속하고 상속된 결과를 설정에 저장하는 것과 같습니다.
var settings = $.extend({}, defaults, options);
//기본값과 옵션을 병합하고 기본 콘텐츠를 덮어쓰지 않고 병합된 결과를 설정으로 반환합니다.

2. dest 매개변수 생략
위의 확장 메서드 프로토타입에서 dest 매개변수를 생략할 경우 해당 메서드는 src 매개변수를 하나만 가질 수 있으며, src는 확장 호출에 병합됩니다.
1, $.extend(src)
이 메서드는 src를 다음과 같은 jquery의 전역 개체에 병합하는 것입니다.

$.extend({
hello:function(){ Alert(
'hello');}
});

은 hello 메소드를 jquery의 전역 객체에 병합하는 것입니다.
2. $.fn.extend(src)
이 메서드는 src를 다음과 같은 jquery 인스턴스 객체로 병합합니다.

$.fn.extend({
hello:function(){alert(
'hello');}
});

은 hello 메소드를 jquery 인스턴스 객체에 병합하는 것입니다.

다음은 일반적으로 사용되는 확장 예제입니다.

$.extend({net:{}});

이것은 jquery 전역 객체에서 netnamespace을 확장하는 것입니다.

$.extend($.net,{
hello:function(){alert(
'hello');}
})

이것은 확장하기 전에 hello 메소드를 확장하는 것입니다. Jquery의 net 네임스페이스로 이동합니다.

3. Jquery의 확장 메소드에도 오버로드된 프로토타입이 있습니다.

extend(boolean,dest,src1,src2,src3...)

첫 번째 매개변수 부울은 전체 복사 수행 여부를 나타내고 나머지는 매개변수는 이전에 소개한 것과 동일합니다. 예를 살펴보겠습니다.

varresult=$.extend(true, {},
{ 이름:
"John", 위치: {도시:" ",군:"USA"} },
{ 마지막:
"Resig", 위치: {주:"MA",county:"China" } } );

하위 개체 위치: {city: "Boston"}이 src1에 중첩되어 있고 하위 개체 위치: {state: "MA"}도 src2에 중첩되어 있음을 알 수 있습니다. deep copy 매개변수가 true인 경우 병합된 결과는

={name:"John",last:"Resig" , 위치: {도시:"
Boston", 주:"MA",카운티:"China" }}
즉, src에 중첩된 하위 객체도 병합한다고 하는데, 첫 번째 매개변수 boolean이 false인 경우 다음과 같이 병합 결과가 무엇인지 살펴보겠습니다.

varresult

= $.extend( false, {},{ 이름: "
John", 위치:{도시:"Boston", 카운티: " USA "} },{ 마지막: "
Resig", 위치: {주:"MA",county:"China" } });
병합 후 결과는 다음과 같습니다.

result={이름:"John",last:"Resig",위치:{상태: " MA ",카운티:"China"}}

$.extend({
min: function(a, b){return a < b?a:b; },
max: function(a, b){return a > b?a:b; }
}); //jquery에 대한 확장된 min 및 max 메서드
확장된 메서드 사용("$.method name"을 통해 호출됨): Alert("a=10,b=20,max="+$.max(10,20)+",min="+$.min(10,20));


이상 $.extend()가 프로젝트에서 자주 사용된다는 몇 가지 세부 정보입니다.

posted @ 2010-11-24 21:13 xiaoxiaohui 읽기(48) 댓글(0)

HTTP 요청 헤더 정보 편집

HTTP 요청 헤더(HttpServletRequest) 개요 HTTP 클라이언트 프로그램(예: 브라우저)은 서버에 요청을 보낼 때 요청 유형(일반적으로 GET, POST 또는 HEAD)을 지정해야 합니다.
 필요한 경우 클라이언트 프로그램은 다른 요청 헤더를 보내도록 선택할 수도 있습니다. Content-Length를 제외하고 대부분의 요청 헤더는 필요하지 않습니다. POST 요청의 경우 Content-Length가 있어야 합니다. 다음은 가장 일반적인 HTTP 요청 헤더(HttpServletRequest) 중 일부에 대한 개요입니다.
HTTP 클라이언트 프로그램(예: 브라우저)은 서버에 요청을 보낼 때 요청 유형(일반적으로 GET 또는 POST)을 지정해야 합니다. 클라이언트 프로그램은 필요한 경우 추가 요청 헤더를 보내도록 선택할 수도 있습니다. Content-Length를 제외하고 대부분의 요청 헤더는 필요하지 않습니다. POST 요청에는 Content-Length가 있어야 합니다.
 다음은 가장 일반적인 요청 헤더 중 일부입니다.
 수락: 브라우저에서 허용하는 MIME 유형입니다.
 Accept-Charset: 브라우저에서 허용되는 문자 집합입니다.
 Accept-Encoding: gzip과 같이 브라우저가 디코딩할 수 있는 데이터 인코딩 방법입니다. 서블릿은 gzip으로 인코딩된 HTML 페이지를 gzip을 지원하는 브라우저에 반환할 수 있습니다. 대부분의 경우 다운로드 시간을 5~10배 줄일 수 있습니다.
 Accept-Language: 브라우저가 원하는 언어 유형으로, 서버가 둘 이상의 언어 버전을 제공할 수 있는 경우 사용됩니다.
 인증: 인증 정보는 일반적으로 서버에서 보낸 WWW-Authenticate 헤더에 대한 응답에 나타납니다.
 연결: 지속적인 연결이 필요한지 여부를 나타냅니다. 서블릿이 여기의 값을 "Keep-Alive"로 보거나 요청이 HTTP 1.1을 사용하고 있음을 확인하면(HTTP 1.1은 기본적으로 지속적인 연결을 만듭니다) 페이지에 여러 요소(예: Applet, 그림)을 통해 다운로드에 소요되는 시간을 대폭 단축할 수 있습니다. 이를 달성하려면 서블릿이 응답으로 Content-Length 헤더를 보내야 합니다. 이를 달성하는 가장 간단한 방법은 먼저 콘텐츠를 ByteArrayOutputStream에 쓴 다음 공식적으로 콘텐츠를 쓰기 전에 크기를 계산하는 것입니다.
 Content-Length: 요청 메시지 본문의 길이를 나타냅니다.
 Cookie: 가장 중요한 요청 헤더 정보 중 하나입니다.
 From: 일부 특수 웹 클라이언트 프로그램에서 사용되며 브라우저에서는 사용되지 않는 요청 보낸 사람의 이메일 주소입니다.
 Host: 초기 URL의 호스트 및 포트입니다.
 If-Modified-Since: 요청한 콘텐츠가 지정된 날짜 이후에 수정된 경우에만 반환하고, 그렇지 않으면 304 "수정되지 않음" 응답을 반환합니다.
 Pragma: "no-cache" 값을 지정하면 서버가 프록시 서버이고 이미 페이지의 로컬 복사본이 있는 경우에도 새로 고친 문서를 반환해야 함을 의미합니다.
 Referer: 사용자가 현재 요청된 페이지에 액세스하는 URL을 포함합니다.
 User-Agent: 브라우저 유형, 이 값은 서블릿에서 반환된 콘텐츠가 브라우저 유형과 관련된 경우 매우 유용합니다.
 UA-Pixels, UA-Color, UA-OS, UA-CPU: 일부 버전의 IE 브라우저에서 전송되는 비표준 요청 헤더로, 화면 크기, 색 농도, 운영 체제 및 CPU 유형을 나타냅니다.
 HTTP 응답 헤더(HttpServletResponse) 개요
 웹 서버의 HTTP 응답은 일반적으로 상태 줄, 하나 이상의 응답 헤더, 빈 줄, 콘텐츠 문서 등의 항목으로 구성됩니다. HTTP 응답 헤더 설정은 상태 표시줄의 상태 코드 설정과 결합되는 경우가 많습니다. 예를 들어, "문서 위치가 변경되었습니다"를 나타내는 여러 상태 코드에는 위치 헤더가 동반되고, 401(승인되지 않음) 상태 코드에는 WWW-Authenticate 헤더가 동반되어야 합니다.
 그러나 특별한 의미를 갖는 상태 코드가 설정되지 않은 경우에도 응답 헤더를 지정하는 것이 유용합니다. 응답 헤더는 쿠키 설정, 수정 날짜 지정, 지정된 간격으로 페이지를 새로 고치도록 브라우저에 지시, 지속적인 HTTP 연결을 활용하기 위해 문서 길이 선언 등 다양한 작업에 사용할 수 있습니다.
 응답 헤더를 설정하는 데 가장 일반적으로 사용되는 메소드는 HttpServletResponse의 setHeader입니다. 이 메소드에는 응답 헤더의 이름과 값을 각각 나타내는 두 개의 매개변수가 있습니다. 상태 코드 설정과 유사하게 응답 헤더 설정은 문서 콘텐츠를 보내기 전에 수행되어야 합니다.
 setDateHeader 메소드와 setIntHeadr 메소드는 날짜와 정수 값을 포함하는 응답 헤더를 설정하는 데 특별히 사용됩니다. 전자는 Java 시간을 GMT 시간 문자열로 변환하는 문제를 방지하고 후자는 정수를 문자열로 변환하는 문제를 방지합니다.
 HttpServletResponse는 또한 많은 설정을 제공합니다.
 setContentType: Content-Type 헤더를 설정합니다. 대부분의 서블릿은 이 방법을 사용합니다.
 setContentLength: Content-Length 헤더를 설정합니다. 이 기능은 지속적인 HTTP 연결을 지원하는 브라우저에 유용합니다.
 addCookie: 쿠키를 설정합니다(응답에 여러 Set-Cookie 헤더가 포함되는 경우가 많기 때문에 Servlet API에는 setCookie 메서드가 없습니다).
또한 이전 섹션에서 소개한 것처럼 sendRedirect 메소드는 상태 코드 302를 설정할 때 Location 헤더도 설정합니다.
 HTTP 응답 헤더 설명
​서버가 지원하는 요청 방법(예: GET, POST 등)을 허용합니다.
 Content-Encoding 문서 인코딩(Encode) 방식. 디코딩 후에만 Content-Type 헤더에 지정된 콘텐츠 유형을 얻을 수 있습니다. gzip을 사용하여 문서를 압축하면 HTML 문서의 다운로드 시간을 크게 줄일 수 있습니다. Java의 GZIPOutputStream은 쉽게 gzip 압축을 수행할 수 있지만 Unix의 Netscape와 Windows의 IE 4 및 IE 5만이 이를 지원합니다. 따라서 서블릿은 Accept-Encoding 헤더(예: request.getHeader("Accept-Encoding"))를 확인하여 브라우저가 gzip을 지원하는지 확인하고, gzip을 지원하는 브라우저에 대해 gzip으로 압축된 HTML 페이지를 반환하고, 일반 헤더를 반환해야 합니다. 다른 브라우저의 HTML 페이지입니다.
 Content-Length는 콘텐츠 길이를 나타냅니다. 이 데이터는 브라우저가 지속적인 HTTP 연결을 사용하는 경우에만 필요합니다. 지속적인 연결을 활용하려면 출력 문서를 ByteArrayOutputStream에 작성하고 완료 시 크기를 확인한 다음 값을 Content-Length 헤더에 입력하고 마지막으로 byteArrayStream.writeTo(response.getOutputStream()을 통해 콘텐츠를 보낼 수 있습니다. ).
Content-Type은 다음 문서가 속한 MIME 유형을 나타냅니다. 서블릿의 기본값은 text/plain이지만 일반적으로 HttpServletResponse는 전용 메서드 setContentTyep을 제공합니다. 시간 형식 변환 문제를 피하기 위해 setDateHeader를 사용할 수 있습니다. Expires 문서가 만료된 것으로 간주되어 더 이상 캐시되지 않아야 하는 경우
문서의 마지막 수정 시간은 If-Modified를 통해 제공될 수 있습니다. - 요청 헤더는 조건부 GET으로 처리되며, 지정된 시간 이후에 수정된 문서만 반환됩니다. 그렇지 않으면 setDateHeader 메서드를 사용하여 304(수정되지 않음) 상태를 반환할 수 있습니다. 위치는 클라이언트가 문서를 검색하기 위해 이동해야 하는 위치를 나타냅니다. 위치는 일반적으로 직접 설정되지 않지만 HttpServletResponse의 sendRedirect 메서드를 통해 또한 상태 코드를 302로 설정합니다. 새로 고침은 이후에 문서를 새로 고치는 데 걸리는 시간을 나타냅니다. , 현재 문서를 새로 고치는 것 외에도 setHeader("Refresh", "5; URL=http://host/path")를 통해 지정된 페이지를 읽도록 브라우저에 요청할 수도 있습니다. 이는 일반적으로 HTML 페이지의 HEAD 영역에 CGI나 Servlet을 사용할 수 없는 HTML Writer에게는 매우 중요합니다. 그러나 Servlet의 경우 Refresh 헤더를 직접 설정하는 것이 더 편리합니다. Refresh의 의미는 "이 페이지를 새로 고치거나 지정된 페이지에 액세스하는 것입니다." "격차"가 아닌 N초 후"입니다. 이 페이지를 새로 고치거나 지정된 페이지에 액세스하는 데 N초가 소요됩니다. 따라서 연속 새로 고침을 사용하려면 매번 새로 고침 헤더를 보내야 하며 204 상태 코드를 보내면 브라우저가 계속 새로 고침되지 않을 수 있습니다. , 새로 고침 헤더 사용 여부 또는 . Refresh 헤더는 공식 HTTP 1.1 사양의 일부가 아니라 확장이지만 Netscape와 IE 모두 이를 지원합니다.
 서버 서버 이름. 서블릿은 일반적으로 이 값을 설정하지 않지만 웹 서버 자체에서 설정합니다.
 Set-Cookie는 페이지와 관련된 쿠키를 설정합니다. 서블릿은 response.setHeader("Set-Cookie", ...)를 사용해서는 안 되지만, HttpServletResponse에서 제공하는 전용 메소드인 addCookie를 사용해야 합니다. 아래의 쿠키 설정에 대한 설명을 참조하세요.
 WWW-Authenticate 클라이언트는 Authorization 헤더에 어떤 유형의 인증 정보를 제공해야 합니까? 이 헤더는 401(승인되지 않음) 상태 줄이 포함된 응답에 필요합니다. 예를 들어 response.setHeader("WWW-Authenticate", "BASIC realm="executives"")입니다. 서블릿은 일반적으로 이러한 측면을 처리하지 않지만 웹 서버의 특수 메커니즘을 통해 비밀번호로 보호된 페이지(예: .htaccess)에 대한 액세스를 제어할 수 있습니다.

오류 코드 설명
  "100" : 계속
  "101" : 위칭 프로토콜
  "200" : OK
  "201" : 생성됨
  "202" : 승인됨
  "203" : 신뢰할 수 없는 정보
  "204" : 아니요 내용
  "205" : 내용 재설정
  "206" : 부분 내용
  "300" : 다중 선택
  "301" : 영구적으로 이동됨
  "302" : 발견됨
  "303" : 기타 보기
  "304" : 수정되지 않음
"305": 프록시 사용
 "307": 임시 리디렉션
 HTTP 400 - 잘못된 요청
 HTTP 401.1 - 승인되지 않음: 로그인 실패
 HTTP 401.2 - 승인되지 않음: 서버 구성 문제로 인해 로그인 실패
 HTTP 401.3 - ACL이 리소스에 대한 액세스를 금지합니다
HTTP 401.4 - 승인되지 않음: 필터에 의해 승인이 거부됨
HTTP 401.5 - 승인되지 않음: ISAPI 또는 CGI 승인 실패
HTTP 403 - 액세스 금지
HTTP 403 - 인터넷 서비스 관리자(HTML)에 대한 액세스가 로컬 호스트로 제한됨 액세스: 실행 가능한 액세스 없음
HTTP 403.2 - 액세스 없음: 읽기 액세스 없음
HTTP 403.3 - 액세스 없음: 쓰기 액세스
HTTP 403.4 - 액세스 없음: SSL 필요
HTTP 403.5 - 액세스 없음: SSL 필요 128
HTTP 403.6 - 액세스 없음: IP 주소 거부됨
HTTP 403.7 - 금지: 클라이언트 인증서 필요
HTTP 403.8 - 금지: 사이트 접근이 금지됨
HTTP 403.9 - 금지: 너무 많은 사용자가 연결되어 있음
HTTP 403.10 - 금지: 잘못된 구성
HTTP 403.11 - 금지: 비밀번호가 변경됨
HTTP 403.12 - 금지: 매퍼에 의해 접근이 거부됨
HTTP 403.13 - 금지됨: 클라이언트 인증서가 취소되었습니다.
HTTP 403.15 - 금지됨: 클라이언트에 너무 많은 액세스 권한이 있습니다.
HTTP 403.16 - 금지됨: 클라이언트 인증서를 신뢰할 수 없거나 유효하지 않습니다.
HTTP 403.17 - 금지됨: 클라이언트 인증서가 만료되었거나 아직 유효하지 않습니다.
HTTP 404.1 - 웹 사이트를 찾을 수 없음
HTTP 404 - 파일을 찾을 수 없음
HTTP 405 - 리소스 금지됨
HTTP 406 - 허용되지 않음
HTTP 407 - 프록시 인증 필요
HTTP 410 - 사용할 수 없음
HTTP 412 - 전제 조건 실패
HTTP 414 - 요청 - URI가 너무 깁니다.
HTTP 500 - 내부 서버 오류 - ASP 오류
HTTP 500.100 - 내부 서버 오류 - ASP 오류
HTTP 500-11 서버 다운
HTTP 500-12 애플리케이션 다시 시작됨
HTTP 500-13 - 서버 사용량이 너무 많습니다
HTTP 500-14 - 애플리케이션이 유효하지 않음
HTTP 500-15 - global.asa 요청이 허용되지 않음
오류 501 - 구현되지 않음
HTTP 502 - 게이트웨이 오류

위 내용은 JQuery의 확장 사용법에 대한 자세한 소개 및 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.