찾다
웹 프론트엔드JS 튜토리얼프로토타입1.5 첫 경험_프로토타입

프로토타입을 볼 시간이 없었네요. 이제 1.5 pre1로 업데이트 됐네요. ㅎㅎ 강력한 기능을 배워야겠네요

1. Prototype이 무엇인가요?
아직 사용해보지 않으셨을 수도 있겠지만, Prototype.js는 Sam Stephenson이 작성한 JavaScript 패키지입니다. 이 훌륭하게 고안되고 잘 작성되었으며 표준을 준수하는 코드 조각은 씩 클라이언트(thick client), 고도로 대화형인 웹 애플리케이션을 만드는 부담을 짊어지게 될 것입니다. Web 2.0 기능을 쉽게 추가할 수 있습니다.

최근에 이 패키지를 경험했다면 문서화가 이 패키지의 장점 중 하나가 아니라는 점을 알게 될 것입니다. 이전의 모든 개발자들과 마찬가지로 저는 프로토타입.js 소스 코드를 자세히 살펴보고 그 모든 부분을 실험했습니다. 나는 그를 연구하면서 메모를 하고 다른 사람들과 공유하면 좋겠다고 생각했습니다.

또한 이 패키지의 개체, 클래스, 메서드 및 확장에 대한 비공식 참조도 제공했습니다.

2. 범용 메서드
이 패키지에는 미리 정의된 여러 개체와 범용 메서드가 포함되어 있습니다. 이러한 메서드를 작성하는 분명한 목적은 반복적인 코딩과 관용어를 많이 줄이는 것입니다.

Prototype 1.5.x 버전부터 다음과 같이 DOM 객체를 보다 편리하게 조작할 수 있습니다.

var ele = $("myelement")
hide() / /이전 버전과 비교하여 DOM 개체 숨기기 var ele = $("myelement");
Element.hide(ele); //DOM 개체 숨기기

이러한 변경의 이점은 무엇입니까? ? 내 생각에는 첫째, 객체 지향적이며 둘째, IDE에서 향후 코드 프롬프트를 용이하게 할 것입니다.
2.1. $() 메소드 사용
$() 메소드는 DOM 메소드와 마찬가지로 DOM에서 너무 자주 사용되는 document.getElementById() 메소드의 편리한 단축형입니다. , 이 메소드는 매개변수로 전달된 ID를 가진 요소를 반환합니다.

DOM의 방식보다 더 좋습니다. 여러 ID를 매개변수로 전달할 수 있으며 $()는 모든 필수 요소가 포함된 Array 객체를 반환합니다. 다음 예에서는 이에 대해 설명합니다.



테스트 페이지 <br><script src="prototype-1.3.1.js"> </script> <br><br><script> <br/> function test1() <br/> { <br/> var d = $('myp') <br/> 🎜> } <br/><br/> function test2() <br/> { <br/> var ps = $('myp','myOtherp') <br/> for(i=0; i<ps.length; i ) <br/> { <br/> 경고(ps[i].innerHTML) <br/> } <br/> } <br/></script> <br> <br>                                                     ;                                 ;<br> <br>  <input type="button" value="Test2" onclick="test2();"><br> <br> <br><br><br><br>이 방법의 또 다른 이점은 ID 문자열이나 요소 개체 자체를 전달할 수 있다는 것입니다. 형식 매개변수를 전달합니다. <br><br><br>2.2. $F() 메서드 사용 <br> <br>$F() 메서드는 또 다른 인기 있는 약어입니다. 텍스트 상자나 드롭다운 상자와 같은 입력 양식 컨트롤의 값을 반환할 수 있습니다. 이 메소드는 요소의 ID 또는 요소 자체를 전달할 수 있습니다. <br><p class="codebody"><script> <br/> function test3() <br/> { <br/> Alert( $F('userName') <br/> } <br/></script> type="text" id="userName" value="Joe Doe"><br> <br><input type="button" value="Test3" onclick="test3();"><br> <br><br></p> <p><br>2.3. Try.these() 메소드 사용 <strong> </strong>Try.these() 메소드는 하나까지 다른 메소드를 호출하고 싶을 때 구현 가능합니다. 일반적으로 이 요구 사항은 일련의 메서드를 매개 변수로 사용하고 해당 메서드 중 하나가 성공적으로 실행될 때까지 이러한 메서드를 하나씩 순서대로 실행하고 성공적으로 실행된 메서드의 반환 값을 반환합니다. <br><br>아래 예에서 xmlNode.text는 일부 브라우저에서 제대로 작동하지만 xmlNode.textContent는 다른 브라우저에서 잘 작동합니다. Try.these() 메서드를 사용하면 정상적으로 작동하는 메서드의 반환 값을 얻을 수 있습니다. <br></p> <script> <p class="codebody">function getXmlNodeValue(xmlNode){ <br/> return Try.these( <br/> function() {return xmlNode.text;}, <br/> function() {return xmlNode .textContent;) <br/>     ); <br/>} <br/></script> 일반적인 방법은 훌륭하지만 현실적으로 가장 발전된 방법은 아닙니다. 그렇습니까? 아마도 이러한 메서드를 직접 작성했거나 스크립트에 유사한 기능이 있을 수도 있습니다. 그러나 이러한 방법은 빙산의 일각에 불과합니다. <br><br>당신이 프로토타입.js에 관심을 갖는 이유는 아마도 AJAX 기능 때문일 것이라고 확신합니다. 이제 AJAX 로직을 완료해야 할 때 이 패키지가 어떻게 더 쉬워지는지 설명하겠습니다. <p>Ajax 객체는 AJAX 기능 작성과 관련된 까다로운 코드를 캡슐화하고 단순화하기 위해 이 패키지에서 생성된 사전 정의된 객체입니다. 이 개체에는 AJAX 논리를 캡슐화하는 일련의 클래스가 포함되어 있습니다. 그 중 일부를 살펴보겠습니다. <br><strong></strong>3.1. Ajax.Request 클래스 사용 <br><br>헬퍼 패키지를 사용하지 않는다면 아마도 XMLHttpRequest 객체를 생성하고 추적하기 위해 많은 코드를 작성하고 있을 것입니다. 비동기식으로 처리한 다음 응답을 구문 분석하여 처리합니다. 두 가지 이상의 브라우저 유형을 지원할 필요가 없다면 운이 좋을 것입니다. <br><br>AJAX 기능을 지원합니다. 이 패키지는 Ajax.Request 클래스를 정의합니다. <br><br>URL http://www.php.cn/을 통해 서버와 통신할 수 있는 애플리케이션이 있다고 가정합니다. 아래와 같은 XML 응답을 반환합니다. <br><strong><?xml version="1.0" 인코딩="utf-8" ?> </strong><ajax-response> <br> <response type="object" id="productDetails"> <br>                                                                                                                              연월> ~                            id> /직원-판매> <br> 월별 -판매> <br> </response> ajax 응답><br></ajax-response></p> <p><br>Ajax.Request 객체를 사용하여 서버와 통신하고 이 XML을 얻는 것은 매우 간단합니다. 아래 예에서는 이를 수행하는 방법을 보여줍니다. </p> <p class="codebody"><script> <br/> function searchSales() <br/> { <br/> var empID = $F('lstEmployees') <br/> var y = $F('lstYears'); 🎜> var url = 'http://yoursever/app/get_sales'; <br/> var pars = 'empID=' empID '&year=' y <br/> var myAjax = new Ajax.Request( <br/>  URL, <br/>                                                                                                > lt; /script> <br/><br/><select id="lstEmployees" size= "10" onchange="searchSales()"> <br/> <option value="5">Buchanan, Steven&gt ; <br/> <option value="8">캘라한, 로라</ 옵션> <br/> <옵션 값="1">다볼리오, 낸시 🎜><select id="lstYears" size="3" onchange="searchSales ()"> <br/> <option selected="selected" value="1996">1996 <option value="1997">1997 <br/> &lt ;option value="1998">1998 <br/><br/><textarea id=result cols=60 행=10 > <br/><br/><p><br/>Ajax.Request 생성자에 전달된 두 번째 객체를 보셨나요? 매개변수 {method: 'get', 매개변수: pars, onComplete: showResponse}는 익명 객체의 실제 쓰기를 나타냅니다. 이는 전달한 객체에 값이 'get'인 method라는 속성, HTTP 요청의 쿼리 문자열이 포함된 매개변수라는 또 다른 속성, showResponse 함수가 포함된 onComplete 속성/메서드가 있다는 의미입니다. <… <br/><br/>이 매개변수는 AJAX 호출에 대한 옵션을 정의합니다. 예제에서 첫 번째 매개변수로 HTTP GET 명령을 통해 해당 URL을 요청하고 pars 변수에 포함된 쿼리 문자열을 전달하면 Ajax.Request 객체는 응답 수신이 완료되면 showResponse 메서드를 호출합니다. <br/><br/>아시다시피 XMLHttpRequest는 HTTP 요청 중에 진행 상황을 보고합니다. 이 진행 상황은 로드 중, 로드됨, 대화형 또는 완료의 네 가지 단계로 설명됩니다. 어떤 단계에서나 Ajax.Request 객체가 사용자 정의 메서드를 호출하도록 할 수 있습니다. Complete가 가장 일반적으로 사용됩니다. 사용자 정의 메소드를 호출하려면 요청의 옵션 매개변수에 있는 onXXXXX 속성/메소드에 사용자 정의 메소드 객체를 제공하기만 하면 됩니다. 우리 예의 onComplete와 같습니다. 전달한 메서드는 XMLHttpRequest 개체 자체인 하나의 매개 변수를 사용하여 호출됩니다. 이 개체를 사용하여 반환된 데이터를 가져오고 이 호출에서 HTTP 결과 코드가 포함된 상태 속성을 확인할 수도 있습니다. <br/><br/>결과를 처리하는 데 유용한 두 가지 다른 옵션이 있습니다. onSuccess 옵션에 메소드를 전달하여 AJAX가 오류 없이 실행될 때 이를 호출할 수도 있고, 반대로 서버 측에서 오류가 발생할 때 onFailure 옵션에 메소드를 전달하여 호출할 수도 있습니다. onXXXXX 옵션에 전달된 메소드와 마찬가지로 이 두 가지도 호출 시 AJAX 요청과 함께 XMLHttpRequest 객체를 전달합니다. <br/><br/>우리의 예에서는 XML 응답을 흥미로운 방식으로 처리하지 않고 단지 XML을 텍스트 필드에 넣었습니다. 이 응답에 대한 일반적인 응용 프로그램은 원하는 정보를 찾은 다음 페이지의 일부 요소를 업데이트하거나 일부 XSLT 변환을 수행하여 페이지에서 일부 HTML을 생성하는 것일 수 있습니다. <br/><br/><br/>3.2. Ajax.Updater 클래스 사용 <br/> <strong>서버의 다른 쪽 끝에서 반환된 정보가 이미 HTML인 경우 이 패키지의 Ajax.Updater 클래스를 사용하면 됩니다. 당신의 삶이 더 쉬워집니다. 이를 통해 AJAX 요청에 의해 반환된 HTML로 채워야 하는 요소를 제공하기만 하면 됩니다. 이 예는 제가 작성한 것보다 더 명확합니다. <br/><script> </script></p> function getHTML() <p class="codebody"> { <br> var url = 'http://yourserver/app/getSomeHTML' <br> var pars = 'someParameter=ABC' ; <br><br> var myAjax = new Ajax.Updater('placeholder', url, {method: 'get', 매개변수: pars}) <br> 🎜><input type="button" value="GetHtml" onclick="getHTML()"> <br></p> <p id="placeholder"></p> <br><br><br><br> 이 코드는 이전 예제보다 더 간결하고 onComplete 메서드를 포함하지 않지만 생성자에 요소 ID가 전달되는 것을 볼 수 있습니다. 클라이언트 측에서 서버 분할 오류를 처리하는 방법을 설명하기 위해 코드를 약간 수정해 보겠습니다. <br><br>오류 처리 방법을 지정하는 옵션을 더 추가할 예정입니다. 이는 onFailure 옵션을 사용하여 수행됩니다. <p>요청이 성공한 후에만 채워지는 자리 표시자도 지정합니다. 이를 달성하기 위해 첫 번째 매개변수를 간단한 요소 ID에서 성공(모든 것이 정상일 때 사용됨)과 실패(뭔가 잘못되었을 때 사용됨)의 두 가지 속성이 있는 객체로 변경했습니다. 다음 예에서는 실패 속성이 사용되지 않지만 onFailure에서는 reportError 메소드만 사용됩니다. <br></p> <p class="codebody"><script> <br/> 함수 getHTML() <br/> { <br/> var url = 'http://yourserver/app/getSomeHTML' <br/> var pars = 'someParameter=ABC'; > var myAjax = new Ajax.Updater( <br/> {success: 'placeholder'}, <br/> url, <br/> {method: 'get', 매개변수: pars, onFailure: reportError}) <br/><br/> } <br/><br/> function reportError(request) <br/> { <br/> Alert('죄송합니다. 오류가 발생했습니다.') <br/> } <br/></script> input type=button value=GetHtml onclick="getHTML()"> <br></p> <p id="placeholder"></p> <br><br><br>서버가 논리는 단순한 HTML 마크업 대신 JavaScript 코드를 반환하는 것이며 Ajax.Updater 객체는 해당 JavaScript 코드를 실행할 수 있습니다. 이 객체가 응답을 JavaScript로 처리하도록 하려면 객체 생성자의 마지막 매개변수에 evalScripts: true 속성을 추가하기만 하면 됩니다. <p><br><br></p>
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
Next.js (백엔드 통합)로 멀티 테넌트 SAAS 애플리케이션 구축Next.js (백엔드 통합)로 멀티 테넌트 SAAS 애플리케이션 구축Apr 11, 2025 am 08:23 AM

일상적인 기술 도구를 사용하여 기능적 다중 테넌트 SaaS 응용 프로그램 (Edtech 앱)을 구축했으며 동일한 작업을 수행 할 수 있습니다. 먼저, 다중 테넌트 SaaS 응용 프로그램은 무엇입니까? 멀티 테넌트 SAAS 응용 프로그램은 노래에서 여러 고객에게 서비스를 제공 할 수 있습니다.

Next.js (Frontend Integration)를 사용하여 멀티 테넌트 SaaS 응용 프로그램을 구축하는 방법Next.js (Frontend Integration)를 사용하여 멀티 테넌트 SaaS 응용 프로그램을 구축하는 방법Apr 11, 2025 am 08:22 AM

이 기사에서는 Contrim에 의해 확보 된 백엔드와의 프론트 엔드 통합을 보여 주며 Next.js를 사용하여 기능적인 Edtech SaaS 응용 프로그램을 구축합니다. Frontend는 UI 가시성을 제어하기 위해 사용자 권한을 가져오고 API가 역할 기반을 준수하도록합니다.

JavaScript : 웹 언어의 다양성 탐색JavaScript : 웹 언어의 다양성 탐색Apr 11, 2025 am 12:01 AM

JavaScript는 현대 웹 개발의 핵심 언어이며 다양성과 유연성에 널리 사용됩니다. 1) 프론트 엔드 개발 : DOM 운영 및 최신 프레임 워크 (예 : React, Vue.js, Angular)를 통해 동적 웹 페이지 및 단일 페이지 응용 프로그램을 구축합니다. 2) 서버 측 개발 : Node.js는 비 차단 I/O 모델을 사용하여 높은 동시성 및 실시간 응용 프로그램을 처리합니다. 3) 모바일 및 데스크탑 애플리케이션 개발 : 크로스 플랫폼 개발은 개발 효율을 향상시키기 위해 반응 및 전자를 통해 실현됩니다.

JavaScript의 진화 : 현재 동향과 미래 전망JavaScript의 진화 : 현재 동향과 미래 전망Apr 10, 2025 am 09:33 AM

JavaScript의 최신 트렌드에는 Typescript의 Rise, 현대 프레임 워크 및 라이브러리의 인기 및 WebAssembly의 적용이 포함됩니다. 향후 전망은보다 강력한 유형 시스템, 서버 측 JavaScript 개발, 인공 지능 및 기계 학습의 확장, IoT 및 Edge 컴퓨팅의 잠재력을 포함합니다.

Demystifying JavaScript : 그것이하는 일과 중요한 이유Demystifying JavaScript : 그것이하는 일과 중요한 이유Apr 09, 2025 am 12:07 AM

JavaScript는 현대 웹 개발의 초석이며 주요 기능에는 이벤트 중심 프로그래밍, 동적 컨텐츠 생성 및 비동기 프로그래밍이 포함됩니다. 1) 이벤트 중심 프로그래밍을 사용하면 사용자 작업에 따라 웹 페이지가 동적으로 변경 될 수 있습니다. 2) 동적 컨텐츠 생성을 사용하면 조건에 따라 페이지 컨텐츠를 조정할 수 있습니다. 3) 비동기 프로그래밍은 사용자 인터페이스가 차단되지 않도록합니다. JavaScript는 웹 상호 작용, 단일 페이지 응용 프로그램 및 서버 측 개발에 널리 사용되며 사용자 경험 및 크로스 플랫폼 개발의 유연성을 크게 향상시킵니다.

Python 또는 JavaScript가 더 좋습니까?Python 또는 JavaScript가 더 좋습니까?Apr 06, 2025 am 12:14 AM

Python은 데이터 과학 및 기계 학습에 더 적합한 반면 JavaScript는 프론트 엔드 및 풀 스택 개발에 더 적합합니다. 1. Python은 간결한 구문 및 풍부한 라이브러리 생태계로 유명하며 데이터 분석 및 웹 개발에 적합합니다. 2. JavaScript는 프론트 엔드 개발의 핵심입니다. Node.js는 서버 측 프로그래밍을 지원하며 풀 스택 개발에 적합합니다.

JavaScript를 어떻게 설치합니까?JavaScript를 어떻게 설치합니까?Apr 05, 2025 am 12:16 AM

JavaScript는 이미 최신 브라우저에 내장되어 있기 때문에 설치가 필요하지 않습니다. 시작하려면 텍스트 편집기와 브라우저 만 있으면됩니다. 1) 브라우저 환경에서 태그를 통해 HTML 파일을 포함하여 실행하십시오. 2) Node.js 환경에서 Node.js를 다운로드하고 설치 한 후 명령 줄을 통해 JavaScript 파일을 실행하십시오.

Quartz에서 작업이 시작되기 전에 알림을 보내는 방법은 무엇입니까?Quartz에서 작업이 시작되기 전에 알림을 보내는 방법은 무엇입니까?Apr 04, 2025 pm 09:24 PM

쿼츠 타이머를 사용하여 작업을 예약 할 때 미리 쿼츠에서 작업 알림을 보내는 방법 작업의 실행 시간은 CRON 표현식에 의해 설정됩니다. 지금...

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)