.
.
<.> 그림 1.1. 전통적인 웹 앱은 동기 시스템 입니다
데이터 교환 링구아 프랑카
xhtml 및이 책
기존 웹 앱은 동기 시스템을 사용합니다. 그림 1.1과 같이 두 번째 페이지를 요청하기 전에 서버가 시스템의 첫 페이지를 보내려면 기다려야합니다.
<.> 그림 1.2. Ajax 웹 앱은 비동기 시스템 입니다
css
이 책의 대부분의 코드 예제는 XHTML 1.0 Strict를 사용합니다. iframe 요소는 엄격하게 사용할 수 없으므로 iframe을 사용하여 보여주는 몇 가지 코드 예제는 XHTML 1.0 전환입니다.
<web> 월드 와이드 웹 컨소시엄은 HTML과 XHTML의 차이점에 대한 FAQ를 유지합니다.
W3C 문서 객체 모델 <em> </em><model> 문서 개체 모델 (DOM)은 XML 및 HTML 문서의 객체 지향 표현이며 해당 문서의 내용, 구조 및 스타일을 변경하기위한 API를 제공합니다.
<specific> 원래 Netscape Navigator 및 Internet Explorer와 같은 특정 브라우저는 JavaScript를 사용하여 HTML 문서를 조작하는 다른 독점적 인 방법을 제공했습니다. DOM은 W3C (World Wide Web Consortium)의 노력으로 인해 동일한 작업을 달성 할 수있는 플랫폼 및 브라우저 중립 방법을 제공했습니다.
<ents> DOM은 XML 또는 HTML 문서의 구조를 객체 계층으로 나타내며 표준 XML 도구에 의한 구문 분석에 이상적입니다.
<ulation ulation> DOM 조작 방법 <p>
<cript cript> JavaScript는 문서를 구문 분석하고 조작하는 측면에서 이러한 DOM 구조를 다루기위한 큰 API를 제공합니다. 이것은 우리가 AJAX 응용 프로그램에서 볼 수있는 웹 페이지로의 작은 조각 변경을 달성하는 주요 방법 중 하나입니다. (또 다른 방법은 단순히 요소의 innerhtml 속성을 변경하는 것입니다.이 방법은 주류 브라우저에서 널리 지원되지만 어떤 표준에도 잘 문서화되어 있지 않습니다.) </cript></p>.
<p> dom 이벤트
<function> DOM의 다른 중요한 기능은 JavaScript가 웹 페이지의 요소에 이벤트를 첨부하는 표준 수단을 제공한다는 것입니다. 이렇게하면 훨씬 더 풍부한 사용자 인터페이스가 가능합니다. 사용자가 간단한 링크 및 양식 요소를 넘어서 페이지와 상호 작용할 수있는 기회를 제공 할 수 있기 때문입니다.
<of> 이것의 좋은 예는 드래그 앤 드롭 기능으로, 사용자가 화면의 페이지를 드래그하여 특정 기능을 트리거하기 위해 제자리로 떨어 뜨릴 수 있습니다. 이러한 종류의 기능은 데스크탑 애플리케이션에만 존재했지만 이제는 DOM 덕분에 브라우저에서도 잘 작동합니다.
</of></function></p> 프레젠테이션 : CSS <p>
CSS (Cascading Style Sheets)는 웹 응용 프로그램에서 사용자 인터페이스 요소의 모양을 제어하기위한 통합 된 방법을 제공합니다. CSS를 사용하여 페이지가 글꼴 크기, 색상 및 간격에서 요소의 위치에 이르기까지 페이지가 보이는 방식의 거의 모든 측면을 변경할 수 있습니다.
<j> ajax 응용 프로그램에서 CSS를 잘 사용하는 것은 사용자 인터페이스 피드백 (CSS 중심 애니메이션 및 전환 포함)을 제공하거나 사용자가 상호 작용할 수있는 페이지의 일부를 나타내는 것입니다 (예 : 마우스 오버 오버에 의해 색상 또는 모양이 트리거 된). 예를 들어 CSS 전환을 사용하여 응용 프로그램의 일부가 서버에서 처리하는 HTTP 요청을 기다리고 있음을 나타냅니다.
<man> CSS 조작은 Ajax라는 용어의 광범위한 정의-다양한 시각적 전환 및 효과뿐만 아니라 드래그 앤 드롭 및 편집 기능에서 크게 정의됩니다.
</man></j></p> 커뮤니케이션 : XMLHTTPREQUEST <p> 사용하기 쉬운 인터페이스를 갖춘 JavaScript 클래스 인 <h> xmlhttprequest는 웹 서버를 오가는 HTTP 요청 및 응답을 보내고 수신합니다. xmlhttprequest 클래스는 진정한 Ajax 응용 프로그램 개발을 가능하게하는 것입니다. xmlhttprequest로 만든 HTTP 요청은 마치 브라우저가 페이지를로드하거나 양식을 제출하도록 정상적인 요청을하는 것처럼 작동하지만 사용자가 현재로드 된 웹 페이지를 떠나지 않아도됩니다.
<first> Microsoft는 Windows 용 Internet Explorer 5에서 ActiveX 객체로 XMLHTTPREQUEST를 처음 구현했습니다. Mozilla 프로젝트는 버전 1.0에서 시작하여 Mozilla 브라우저에 호환 가능한 API가있는 JavaScript 네이티브 버전을 제공했습니다. (물론 Firefox에서도 구할 수 있습니다.) Apple은 버전 1.2 이후 Safari에 xmlhttprequest를 추가했습니다.
<the> XML 문서 또는 일련의 텍스트 문자열 서버의 응답을 JavaScript로 전달할 수는 있지만 개발자가 적합하다는 것을 볼 수 있습니다. 종종 웹 응용 프로그램의 사용자 인터페이스의 일부를 업데이트합니다.
모든 것을합시다 : javaScript <p>
<cript> JavaScript는 Ajax 응용 프로그램을 함께 보유하는 접착제입니다. Ajax 개발에서 여러 역할을 수행합니다
</cript></p> <p>
<t> xmlhttprequest를 사용하여 작성된 http 요청 제어
<the> 사용 된 데이터 교환 형식에 따라 DOM 조작 방법, XSLT 또는 사용자 정의 메소드를 사용하여 서버에서 돌아온 결과를 구문 분석합니다.
<res>는 DOM 조작 메소드를 사용하여 웹 페이지에 컨텐츠를 삽입하거나 요소의 InnerHTML 속성을 업데이트하거나 요소의 CSS 속성을 변경하여 사용자 인터페이스에서 결과 데이터를 제시합니다.
</res></the></t></p>
<long> 가벼운 웹 프로그래밍 (및 경험이없는 프로그래머의 손에)에서 사용의 오랜 역사로 인해, 많은 전통적인 애플리케이션 개발자들은“심각한 프로그래밍 언어”로 간주되지 않았으며, 실제로는 객체 지향적 프로그래밍 방법론을 지원할 수있는 완벽하고 동적 인 언어라는 사실에도 불구하고.
<ception> Ajax 개발 기술이 브라우저 기반 애플리케이션의 전력과 기능을 확장함에 따라 "장난감 언어"로서의 JavaScript의 오해는 빠르게 변화하고 있습니다. Ajax의 출현의 결과로 JavaScript는 이제 르네상스의 무언가를 겪고있는 것으로 보이며, Ajax 개발에 사용할 수있는 JavaScript 툴킷 및 라이브러리의 폭발적인 성장은 사실의 증거입니다. <p>.</p>
<h5> 요약
이 장에서는 Ajax와 기술을 간단히 만드는 기술에 대한 빠른 개요를 가졌습니다. 우리는 대화 형 UI와 유사한 무언가를 만들기 위해 개발자들이 나쁜 옛날에 견딜 수있는 끔찍한 코딩 연소를 보았고, Ajax가 어떻게 그러한 접근법에 대해 큰 개선을 제공하는지 보았습니다. Ajax - XML, Dom, CSS, XMLHTTPREQUEST 및 JavaScript의 제작 된 명령을 통해 동적이고 접근 가능한 AJAX 사이트를 구축하는 데 필요한 모든 것을 갖추고 있습니다.
</h5>
<basic> 2 장. 기본 XMLHTTPREQUEST
<to> 나는이 새로운 경이로움을 공유하기를 기다릴 수 없다. 사람들은 모두 빛을보고, 그들 모두가 자신의 음악을 만들게 할 것이며, 제사장들은 오늘 밤에 내 이름을 찬양한다. <p>.
</p>
<discover> - 러쉬, 디스커버리 <p>
<m> ajax의 진정한 힘을 제공하는 것은 xmlhttprequest입니다 : 브라우저에서 비동기 HTTP 요청을 만들고 작은 덩어리에서 컨텐츠를 끌어내는 능력.
<have> 웹 개발자는 오랫동안이를 달성하기 위해 트릭과 해킹을 사용해 왔으며, 성가신 제한을 겪고 있습니다. 보이지 않는 Iframe Hack은 IFRAME의 부모 문서와 문서 사이에 데이터를 전달해야했으며 "원격 스크립팅"방법조차도 JavaScript가 포함 된 페이지에 대한 요청을 제한했습니다.
<ax> xmlhttprequest를 사용하는 Modern Ajax 기술은 이러한 Kludgy 방법에 비해 크게 개선되어 앱이 페이지를 완전히 다시로드하지 않고도 얻고 게시 할 수 있습니다. </ax></have></m></p>.
이 장에서는 웹 서버의 페이지를 시간이 정한 일정으로 핑하는 간단한 사이트 모니터링 응용 프로그램 인 간단한 Ajax 웹 응용 프로그램을 바로 만들 것입니다. 그러나 서버를 폴링하기위한 비동기 HTTP 요청을 시작하기 전에 xmlhttprequest 객체가 단일 재사용 가능한 코드 라이브러리 내에서 xmlhtttprequest 객체와 같은 모든 작은 브라우저 불이행 능력을 관리함으로써 XMLHTTPREQUEST 클래스의 사용을 단순화해야합니다.
<j> 간단한 ajax 라이브러리
<sim> xmlhttprequest 클래스의 사용을 단순화하기위한 한 가지 방법은 기존 코드 라이브러리를 사용하는 것입니다. Ajax 개발의 인기가 높아짐에 따라 문자 그대로 수십 개의 라이브러리, 툴킷 및 프레임 워크가있어 xmlhttprequest를 쉽게 사용할 수 있습니다.
<the> 그러나 xmlhttprequest 클래스의 인스턴스를 생성하기위한 코드가 상당히 간단하고 사용하기위한 API는 이해하기 쉽습니다. 우리는 필요한 기본 사항을 처리하는 매우 간단한 JavaScript 라이브러리를 작성합니다. <h5>.
<the> 자신의 라이브러리를 만드는 과정을 밟는 것은 XMLHTTPREQUEST 클래스가 어떻게 작동하는지 알 수 있도록하고, 사용하기로 결정할 때 다른 툴킷이나 라이브러리에서 더 많은 것을 얻을 수 있도록 도와줍니다. </the>
</h5>.
<q> ajax 클래스 시작 </q>
<by> 우리는 ajax라는 기본 클래스를 만들어 xmlhttprequest 클래스의 기능을 랩핑합니다. 나는 JavaScript에서 객체 지향적 프로그래밍을 한 적이 없다 - 도움말! <p>
이 섹션에서는 JavaScript에서 클래스와 객체를 만들기 시작합니다. 전에이 일을 한 적이 없다면 걱정하지 마십시오. 객체 지향 프로그래밍의 기본 사항을 아는 한 매우 간단합니다.
JavaScript에서는 Java, C 또는 .NET 언어 중 하나에서와 같이 복잡한 구문을 가진 클래스를 선언하지 않습니다. 우리는 단순히 클래스 인스턴스를 만들기 위해 생성자 함수를 작성합니다. 우리가해야 할 일은 <em>입니다
</em> </p>
<uct> 생성자 함수 제공 -이 함수의 이름은 클래스의 이름입니다
<ies> 키워드를 사용하여 구성된 객체에 속성을 추가 한 다음, 기간과 속성의 이름 </ies></uct></by></the></sim></j></discover></to></basic></ception></long></the></first></h></p>
<code> 다음은 helloorld라는 간단한 클래스를 만드는 코드입니다.
-
이 코드는 xmlhttprequest 객체와 함께 작동하기 위해 ajax 클래스에서 필요한 속성을 정의합니다. 이제 우리의 객체에 몇 가지 방법을 추가해 봅시다. 우리는 xmlhttprequest 객체를 설정하고 우리에게 요청하는 방법을 알려주는 몇 가지 기능이 필요합니다.
- xmlhttprequest 객체 생성
-
xmlhttprequest 객체는 ReadyStateChange 이벤트를 발사하여 각 상태 변경에 대해 알려줍니다. 이 이벤트의 핸들러에서 요청의 ReadyState를 확인하고 요청이 완료되면 (즉, ReadyState가 4로 변경 될 때) 서버의 응답을 처리 할 수 있습니다. Ajax 코드의 기본 개요는 다음과 같습니다. -
보내기 메소드는 하나의 매개 변수를 취하며 게시물 데이터에 사용됩니다. 요청이 현재 요청과 같이 서버에 데이터를 전달하지 않는 간단한 GET 일 때이 매개 변수를 NULL로 설정합니다. 범위 손실과 이것
- OnreadyStateChange가 이상한 변수 할당이 포함되어 있음을 알 수 있습니다.
-
이 새로운 변수 인 자체는 비동기 이벤트 처리기를 사용하는 JavaScript 개발자가 종종 경험하는 "스코프 손실"이라는 문제에 대한 솔루션입니다. 비동기 이벤트 핸들러는 일반적으로 xmlhttprequest와 함께 사용되며 settimeout 또는 setInterval과 같은 함수와 함께 사용됩니다.
이 키워드는 객체 지향 JavaScript 코드의 속기로 사용되어 "현재 객체"를 참조하십시오. 다음은 빠른 예입니다. Scopetest라는 클래스 :
이 코드는 Scopetest 클래스의 인스턴스를 생성 한 다음 해당 객체의 DOTEST 메소드를 호출하여 "Scopetest의 인사말!"메시지를 표시합니다. 단순 해요?
이제 Scopetest 클래스에 간단한 xmlhttprequest 코드를 추가해 봅시다. 웹 서버의 홈페이지에 대한 간단한 GET 요청을 보내고 응답이 접수되면 this.message and self.message의 내용을 표시합니다.
-
그렇다면 어떤 메시지가 표시됩니까? 답은 그림 2.1에 표시되어 있습니다 우리는 Self.message가 우리가 기대하는 인사말 메시지이지만, 이에 무슨 일이 있었는지 message? 키워드를 사용하여“이 코드를 실행하는 객체”를 참조하는 편리한 방법입니다. 그러나 이것은 하나의 작은 문제가 있습니다. 그 의미는 물체 외부에서 호출 될 때 변경됩니다. 이것은 실행 컨텍스트라고 불리는 결과입니다. 객체 내부의 모든 코드는 동일한 실행 컨텍스트에서 실행되지만 이벤트 처리기와 같은 다른 객체에서 실행되는 코드는 호출 객체의 실행 컨텍스트에서 실행됩니다. 이것이 의미하는 바는 객체 지향 JavaScript를 작성할 때이 키워드를 사용하여 이벤트 핸들러 코드의 객체를 참조 할 수 없다는 것입니다 (위의 OnreadyStateChange와 같이). 이 문제를 범위 손실이라고합니다 이 개념이 아직 100% 명확하지 않다면 너무 걱정하지 마십시오. 다음 장에서는이 문제에 대한 실제 시연이 보일 것입니다. 그 동안 코드 예제에서 변수 자체가 보이면 스코프 상실 문제를 처리하는 것이 포함되어 있음을 명심하십시오. . 응답 처리
이제 우리는 HTTP 요청에 대한 서버의 응답을 처리하기 위해 코드를 작성할 준비가되었습니다. 우리가 OnreadyStateChange 이벤트 핸들러에 남겨둔“응답을 처리하기위한 것”주석을 기억하십니까? 우리는 그 일을 할 코드를 썼을 때입니다! 함수는 세 가지 작업을 수행해야합니다.
응답이 오류인지 아닌지 알아냅니다. 원하는 형식으로 응답을 준비하십시오 원하는 핸들러 함수에 대한 응답을 전달하십시오 ajax 클래스의 내부 기능에 아래 코드를 포함시킵니다. 응답이 완료되면 xmlhttprequest 오브젝트의 상태 속성에서 요청이 성공했는지 여부를 나타내는 코드가 반환됩니다. 상태 속성에는 완료된 요청의 HTTP 상태 코드가 포함됩니다. 요청 된 페이지가 누락 된 경우 코드 404, 서버 측 스크립트에서 오류가 발생한 경우 500, 요청이 성공한 경우 200 등이 있습니다. 이 코드의 전체 목록은 HTTP 사양 (RFC 2616)에 제공됩니다. 숫자가 좋지 않습니까?코드를 기억하는 데 어려움이있는 경우 걱정하지 마십시오. 오류에 대한 좀 더 자세한 내용을 알려주는 짧은 메시지가 포함 된 Statustext 속성을 사용할 수 있습니다 (예 : "찾을 수 없음", "내부 서버 오류", "OK"). .
우리의 ajax 클래스는 서버의 응답을 세 가지 형식으로 제공 할 수 있습니다. 정상적인 JavaScript 문자열, W3C XML dom을 통해 액세스 할 수있는 XML 문서 개체 및 요청을하는 데 사용 된 실제 XMLHTTPREQUEST 객체로서의 응답을 제공 할 수 있습니다. 이들은 텍스트, XML 또는 객체로 설정할 수있는 ajax 클래스의 응답 성분에 의해 제어됩니다. 응답 내용은 XMLHTTPREQUEST 객체의 두 속성을 통해 액세스 할 수 있습니다. responsexml -이 속성에는 XML 문서 개체가 포함되어 있습니다. 응답이 XML이 아닌 경우이 속성은 비어 있습니다. ajax 클래스는 응답 특성을 텍스트로 초기화하므로 기본적으로 응답 핸들러가 서버의 컨텐츠를 JavaScript 문자열로 전달됩니다. XML 컨텐츠로 작업하는 경우 ResponseFormat 속성을 XML로 변경하여 대신 XML 문서 개체를 꺼낼 수 있습니다. 정말 공상을 원할 경우 사용할 수있는 옵션이 하나 더 있습니다. 실제 XMLHTTPREQUEST 객체 자체를 핸들러 기능으로 반환 할 수 있습니다. 이를 통해 상태 및 Statustext 속성과 같은 것들에 직접 액세스 할 수 있으며 특정 클래스의 오류를 다르게 처리하려는 경우 유용 할 수 있습니다. 예를 들어 404 오류의 경우 추가 로깅을 완료합니다. 올바른 컨텐츠 유형 설정 모든 주요 브라우저에서 XMLHTTPREQUEST 구현을 사용하려면 응답을 XML로 처리하려면 HTTP 응답의 컨텐츠 유형을 올바르게 설정해야합니다. 컨텐츠 유형의 텍스트/XML (또는 응용 프로그램/XML 또는 Application/XHTML XML)으로 반환 된 잘 형성된 XML은 XMLHTTPREQUEST 객체의 응답 XML 속성을 올바르게 채 웁니다. 비 XML 컨텐츠 유형은 해당 속성에 대해 NULL 또는 정의되지 않은 값을 초래합니다. 그러나 그러나 Firefox, Safari 및 Internet Explorer 7은 XML 문서에 대한 XMLHTTPREQUEST의 선택에 관한 방법을 제공합니다. 우리의 간단한 ajax 클래스 클래스는 setMimeType 메소드를 사용하여 이것에 연결됩니다 : -
이 메소드는 MimeType 속성을 설정합니다
-
웹 애플리케이션의 전면 및 후면 끝을 모두 제어 할 수없는 환경에서는 비협조적인 서버에서 컨텐츠 유형 헤더를 무시할 수있는 것이 매우 중요 할 수 있습니다. 오늘날의 많은 앱 액세스 서비스 및 많은 이질적인 도메인 또는 소스의 컨텐츠에 액세스하기 때문에 특히 그렇습니다. 그러나이 기술은 Internet Explorer 6 또는 Opera 8에서 작동하지 않으므로 오늘날 응용 프로그램에서 사용하기에 적합하지 않을 수 있습니다. 응답 핸들러
그런 다음 Doreq 메소드에서는 시도 내에서 ResidentemimeType를 호출합니다. HTTP 1.1 사양에 따르면, 200에서 299 사이의 코드가있는 응답은 성공적인 응답입니다. 우리가 정의한 OnreadyStateChange 이벤트 핸들러는 상태 속성을보고 응답 상태를 얻습니다. 코드가 성공적인 응답을 위해 올바른 범위 내에있는 경우 OnreadyStateChange 이벤트 핸들러는 응답 핸들러 메소드 (handleresp 속성에 의해 설정됨)에 대한 응답을 전달합니다. 응답 핸들러는 물론 응답이 무엇인지 알아야하므로 응답을 매개 변수로 전달합니다. 우리는이 과정이 나중에 행동하는 것을 볼 것입니다. 핸들러 메소드가 사용자 정의이므로 코드는 메소드가 메소드를 실행하려고하기 전에 메소드가 올바르게 설정되었는지 확인하기 위해 CURSORY 검사를 수행합니다. 오류 핸들러 상태 속성에 요청에 오류가 있음을 나타내는 경우 (즉, 200 ~ 299 코드 범위 외부) 서버의 응답은 HonderERR 속성의 오류 핸들러로 전달됩니다. Ajax 클래스는 이미 오류 핸들러에 대한 합리적인 기본값을 정의하므로 호출하기 전에 정의 할 필요가 없습니다. handleerr 속성은 다음과 같이 보이는 함수를 가리 킵니다. 이 메소드는 팝업이 차단되지 않았는지 확인한 다음 새 브라우저 창에 서버 오류 페이지 컨텐츠의 전체 텍스트를 표시하려고합니다. 이 코드는 시도를 사용합니다. 캐치 블록을 사용하므로 사용자가 팝업을 차단 한 경우 컷 다운 버전의 오류 메시지를 표시하고보다 자세한 오류 메시지에 액세스하는 방법을 알려줄 수 있습니다.
이것은 최종 사용자에게 정보를 적게 보여주고 싶을 수도 있지만, 이것은 편집증 수준에 달려 있습니다. 자신의 사용자 정의 오류 핸들러를 사용하려면 Sethandlererr를 사용할 수 있습니다. 또는 하나의 진정한 핸들러 단일 함수를 사용하여 성공적인 응답과 오류를 모두 처리 할 수 있습니다. Ajax 클래스의 편의 방법 인 Sethandlerboth는 이것을 쉽게 설정합니다. 요청을 중단하는
때때로, 자신의 경험에서 알 수 있듯이 웹 페이지는로드하는 데 오랜 시간이 걸립니다. 웹 브라우저에는 중지 버튼이 있지만 Ajax 클래스는 어떻습니까? 이곳은 Abort 방법이 작동하는 곳입니다 : function HelloWorld() { <br> this.message = 'Hello, world!'; <br> this.sayMessage = function() { <br> window.alert(this.message); <br> }; <br> }
이 메소드는 OnreadyState 이벤트 핸들러를 빈 함수로 변경하고 XMLHTTPREQUEST 클래스의 인스턴스에서 ABORT 메소드를 호출 한 다음 생성 한 인스턴스를 파괴합니다. 이렇게하면 중단되는 요청을 위해 독점적으로 설정된 속성이 재설정됩니다. 다음에 요청이 이루어지면 init 메소드가 호출되고 해당 속성이 재 구체화됩니다.그렇다면 왜 OnreadyState 이벤트 핸들러를 변경해야합니까? XMLHTTPREQUEST의 많은 구현이 중단되면 요청 상태가 변경되었음을 나타냅니다. 더 나쁜 것은 이러한 이벤트가 4 인의 ReadyState가 완성된다는 것입니다. 이는 예상대로 완성 된 모든 것이 완료되었음을 나타냅니다 (부분적으로는 사실입니다. 분명히, 우리는 요청을 중단 할 때 응답 핸들러가 호출되기를 원하지 않으므로 중단을 호출하기 직전에 기존 핸들러를 제거합니다. 지금까지 우리가 가지고있는 코드를 감안할 때, ajax 클래스는 요청을하기 위해 두 가지만 필요합니다. 대상 url 응답 의 처리기 기능 DOGET라는 메소드를 제공 하여이 두 속성을 모두 설정하고 요청을 시작하겠습니다. 두 개의 예상 매개 변수와 함께 URL 및 핸드와 함께이 함수에는 세 번째 매개 변수 : 형식이 있음을 알 수 있습니다. 이것은 핸들러 기능으로 전달되는 서버 응답 형식을 변경할 수있는 선택적 매개 변수입니다. 형식 값을 전달하지 않으면 Ajax 클래스의 응답 성분이 텍스트 값으로 기본값을 제공하므로 핸들러는 responseText 속성의 값을 전달합니다. 대신 XML 또는 객체를 형식으로 전달할 수 있습니다. 이는 응답 핸들러로 전달되는 매개 변수를 XML DOM 또는 XMLHTTPREQUEST 객체로 변경할 수 있습니다. 예 : 간단한 테스트 페이지 Ajax 클래스에서 가장 기본적인 요청을하려면 다음과 같은 일을 할 수 있습니다. function HelloWorld() { <br> this.message = 'Hello, world!'; <br> this.sayMessage = function() { <br> window.alert(this.message); <br> }; <br> }
이것은 ajax 클래스의 인스턴스를 생성하여 fakeserver.php라는 페이지에 간단한 요청을 만들고 결과를 텍스트로 핸드 함수로 전달합니다. Fakeserver.php가 사용하려는 XML 문서를 반환 한 경우 다음과 같이 할 수 있습니다. 이 경우 SomePage.php가 실제로 유효한 XML을 제공하고 콘텐츠 유형 HTTP 응답 헤더가 Text/XML (또는 적절한 다른)로 설정되었음을 절대적으로 확신하고 싶습니다. 이제 우리는 Ajax 객체를 만들고 요청에 대한 간단한 핸들러 기능을 설정 했으므로 이제 코드를 작동시킬 차례입니다. 가짜 서버 페이지 위의 코드에서 요청의 대상 URL이 fakeserver.php라는 페이지로 설정되어 있음을 알 수 있습니다. 이 데모 코드를 사용하려면 동일한 PHP 지원 웹 서버에서 ajaxtest.html 및 fakeserver.php를 모두 제공해야합니다. 간단한 ASP로 IIS 웹 서버에서이를 수행 할 수 있습니다. 가짜 서버 페이지는 아래의 PHP 코드를 사용하여 웹 서버의 다양한 응답 시간을 시뮬레이션하는 초기 페이지입니다. var hw = new HelloWorld(); <br> hw.sayMessage(); <br> hw.message = 'Goodbye'; <br> hw.sayMessage();
그것은이 작은 코드 스크랩입니다. 3 초에서 12 초 사이에 기다린 다음 인쇄합니다. fakeserver.php 코드는 텍스트/일반에 대한 응답의 컨텐츠 유형 헤더를 설정합니다. 전달되는 페이지의 내용에 따라 응답을 위해 다른 컨텐츠 유형을 선택할 수 있습니다. 예를 들어, XML 문서를 발신자에게 전달하는 경우 자연스럽게 Text/XML을 사용하고 싶을 것입니다. 아래 코드에서 알 수 있듯이 일부 기능 (예 : Sleep)은 쉽게 사용할 수 없지만 ASP에서도 잘 작동합니다. 이 책 전체에서 모든 서버 측 예제는 PHP로 작성되지만 ASP, ASP.NET, Java, Perl 또는 웹 서버를 통해 콘텐츠를 제공 할 수있는 모든 언어로 쉽게 쓸 수 있습니다.
.setMimeType 메소드 를 사용하십시오
XML로 구문 분석하려는 유효한 XML 문서가 포함되어 있다고 알고있는 응답이 있다고 상상해보십시오. 그러나 서버는 텍스트/평원으로서 귀하에게 제공해야합니다. SetMimeType에 추가 호출을 추가하여 Firefox 및 Safari에서 해당 응답을 XML로 구문 분석 할 수 있습니다. 자연스럽게, 서버의 응답이 유효한 XML인지 확인하는 경우에만이 접근법을 사용해야하며 브라우저가 Firefox 또는 Safari인지 확인할 수 있습니다. 페이지를 치는 페이지 이제 진실의 순간이 온다! 로컬 웹 서버를 치고 ajaxtest.html을로드하고 얻는 것을 확인하십시오. 모든 것이 제대로 작동하는 경우 몇 분의 지연이 발생하면 그림 2.2의 표준 자바 스크립트 경보가 표시됩니다. 로 작동하고 있음을 확인합니다
이제 모든 것이 좋고 Ajax 클래스가 제대로 작동하고 있으므로 다음 단계로 이동해야 할 때입니다. . 예 : 간단한 ajax app
알겠습니다. 그래서 Ajax의 멋진 힘을 사용하여 "OK"를 읽는 작은 작은 JavaScript 경보 상자를 스폰하는 것은 아마도이 책을 구입했을 때 염두에 두었던 것이 아닙니다. 이 xmlhttprequest를 좀 더 유용하게 만드는 예제 코드의 변경 사항을 구현하겠습니다. 동시에이 장의 시작 부분에서 언급 한 간단한 모니터링 응용 프로그램을 만들 것입니다. 앱은 웹 사이트를 핑하고 응답을받는 데 걸리는 시간을보고합니다. 우리는 라이브러리가 포함 된 두 개의 javaScript 파일 인 ajax.js와 응용 프로그램의 코드가 포함 된 appmonitor1.js로 연결되는 간단한 HTML 문서로 시작합니다. 페이지 본문에 내용이 거의 없다는 것을 알 수 있습니다. 단일 DIV 요소 만 있습니다. 이것은 Ajax 기능에 의존하는 웹 앱의 상당히 전형적인 것입니다. 종종 Ajax 앱의 컨텐츠는 종종 JavaScript에 의해 동적으로 생성되므로 모든 컨텐츠가 서버에서 생성 한 비 Ajax 웹 응용 프로그램보다 페이지 소스 본문에서 훨씬 적은 마크 업이 나타납니다. 그러나 Ajax가 응용 프로그램의 절대적으로 필수적인 부분이 아닌 경우 응용 프로그램의 일반 HTML 버전을 제공해야합니다. 우리는 ajax 클래스를 사용하는 간단한 컨텐츠로 AppMonitor1.js 파일을 시작합니다 : 우리는 시작 변수를 사용하여 각 요청이 시작되는 시간을 기록합니다.이 그림은 각 요청에 걸리는 시간을 계산하는 데 사용됩니다. 우리는 타이밍 요청에 대한 추가 코드로 Ajax 클래스의 작품을 고무시켜 줄 필요가 없도록 글로벌 변수를 시작합니다. ajax 객체에 대한 호출 직전과 직후에 시작 값을 설정할 수 있습니다. .ajax 변수는 단순히 ajax 클래스의 인스턴스를 보유합니다. dopoll 함수는 실제로 ajax 클래스를 사용하여 HTTP 요청을 만듭니다. 원래 테스트 페이지에서 doget 메소드에 대한 호출을 인식해야합니다. 는 타겟 URL에 시작 값을 매개 변수로 한 쿼리 문자열에 추가했습니다. 우리는 실제로 서버 에서이 값을 사용하지 않을 것입니다. 우리는 인터넷 익스플로러의 지나치게 열성적인 캐싱을 처리하기 위해 임의의 가치로 사용하고 있습니다. 즉, 모든 xmlhttprequest로 작성된 모든 요청을 가져 오며, "기능"을 비활성화하는 한 가지 방법은 쿼리 문자열에 임의 값을 추가하는 것입니다. 시작의 밀리 초 값은 해당 임의 값으로 두 배가 될 수 있습니다. 이 접근법에 대한 대안은 XMLHTTPREQUEST 클래스의 setRequestHeader 메소드를 사용하여 요청에 대한 if-modified-since 헤더를 설정하는 것입니다. 마지막으로, 우리는 dopoll을 창에 첨부하여 모든 것을 시작합니다. showpoll 로 결과를 처리합니다
doget에 전달하는 두 번째 매개 변수는 Ajax 클래스에 함수 showpoll에 대한 응답을 전달하도록 지시합니다. 그 기능의 코드는 다음과 같습니다 이것은 모두 매우 간단합니다. 함수는 단일 매개 변수를 기대합니다.이 매개 변수는 모든 것이 예상대로 진행되면 fakeserver.php에서 반환 된 문자열 확인이어야합니다. 응답이 올바른 경우 코드는 응답이 얼마나 오래 걸렸는지 파악하는 데 필요한 빠른 계산을 수행하고 결과가 포함 된 메시지를 만듭니다. 디스플레이를 위해 그 메시지를 Pollresult로 전달합니다 이 매우 간단한 구현에서 예상 응답 이외의 다른 것은 상당히 간결하고 도움이되지 않는 메시지를 초래합니다. 요청이 실패했습니다. 다음 장 에서이 앱을 업그레이드 할 때 오류 조건 처리를 더욱 강력하게 만들 것입니다. 일단 Pollresult가 설정되면 Printresult 기능으로 전달됩니다. Printresult 함수는 페이지의 Lone Div 내부의 ShowPoll에서 전송 된 메시지를 표시합니다. 위의 코드의 테스트에 유의하십시오. 위의 코드는 DIV에 자식 노드가 있는지 확인하는 데 사용됩니다. 이것은 이전 반복 에이 DIV에 추가 한 텍스트 또는 페이지 마크 업에 DIV 내부에 포함 된 텍스트를 포함 할 수있는 텍스트 노드의 존재를 확인한 다음 제거 할 수 있습니다. 기존 텍스트 노드를 제거하지 않으면 코드는 새 결과를 페이지에 새 텍스트 노드로 추가하면 더 많은 텍스트가 지속적으로 추가되는 긴 텍스트 문자열을 표시합니다. function HelloWorld() { <br> this.message = 'Hello, world!'; <br> this.sayMessage = function() { <br> window.alert(this.message); <br> }; <br> }
왜 내부를 사용하지 않는가?당신은 단순히 div의 InnerHtml 속성을 업데이트 할 수 있습니다. InnerHtml 속성은 웹 표준이 아니지만 모든 주요 브라우저가 지원합니다. 또한 DOM 방법에 필요한 네 줄과 비교할 때 단일 코드 라인이라는 사실에서 알 수 있듯이 DOM 메소드보다 사용하기가 더 쉽습니다. 페이지에 콘텐츠를 표시하는 방법도 본질적으로 더 좋습니다. 경우에 따라,이 두 가지 접근법의 렌더링 속도 차이를 기반으로 메소드를 선택하게 될 수 있습니다 (InnerHTML은 DOM 메소드보다 빠를 수 있음). 다른 경우, 당신은 코드의 명확성 또는 개인 취향에 따라 결정을 내릴 수 있습니다.
다시 프로세스를 다시 시작합니다마지막으로, showpoll은 다음과 같이 Settimeout을 사용하여 15 초 안에 원래 Dopoll 함수에 대한 호출을 예약하여 전체 프로세스를 시작합니다.
코드가 Dopoll 함수를 지속적으로 호출한다는 사실은 페이지가로드되면 http는 해당 페이지가 닫힐 때까지 Fakeserver.php 페이지를 폴링하는 요청을 요청합니다. 폴링 변수는 보류중인 작업을 추적하고 클리어 타임 아웃을 사용하여 취소 할 수있는 간격 ID입니다. 설정 타임 아웃 호출의 첫 번째 매개 변수 인 Dopoll은 응용 프로그램의 주요 기능에 대한 포인터입니다. 두 번째는 요청 사이에 경과 해야하는 시간 (초)을 1 초 만에 나타냅니다. 전체 예제 코드 이 간단한 모니터링 애플리케이션으로 첫 번째 시험 실행의 모든 코드는 다음과 같습니다. 좋은 소프트웨어 엔지니어링 원칙을 따르기 위해 JavaScript 코드를 Markup에서 분리하고 두 개의 다른 파일에 넣었습니다. .
나는이 책의 모든 예제 코드와 비슷한 접근법을 따르고 각 예제의 마크 업, JavaScript 코드 및 CSS를 별도의 파일로 분리합니다. 이 작은 모니터링 앱은 기본적으로 CSS 파일이 없습니다. 다음 장에서 더 멋지게 보이도록 몇 가지 스타일을 추가 할 것입니다. 앱 실행 브라우저에 페이지를로드하십시오. 웹 서버의 루트 디렉토리에 떨어 뜨려 브라우저에서 페이지를 엽니 다. fakeserver.php 페이지가 올바르게 응답하는 경우 그림 2.3에 표시된 디스플레이와 같은 내용이 표시됩니다. function HelloWorld() { <br> this.message = 'Hello, world!'; <br> this.sayMessage = function() { <br> window.alert(this.message); <br> }; <br> }
추가 읽기
JavaScript의 객체 모델이 장의 기술과 개념에 대해 더 많이 배우는 데 도움이되는 몇 가지 온라인 리소스가 있습니다. http://docs.sun.com/source/816-6409-10/obj.htm http://docs.sun.com/source/816-6409-10/obj2.htm
Sun Microsystems가 주최하는 JavaScript 버전 1.3에 대한 클라이언트 측 JavaScript 안내서의 객체에 대한이 두 장을 확인하십시오. 첫 번째 장에서는 JavaScript에서 객체 작업을 수행하는 방법을 이해하는 데 필요한 모든 기본 개념을 설명합니다. 두 번째는 JavaScript의 프로토 타입 기반 상속 모델에 대해 더 깊이 들어가므로 JavaScript를 사용하여 객체 지향 코딩의 더 많은 힘을 활용할 수 있습니다. 이것은 JavaScript 객체를 사용하여 개인 인스턴스 변수를 만드는 간단한 소개입니다. JavaScript의 프로토 타입 기반 상속 체계에 대해 더 깊이 이해하는 데 도움이됩니다. xmlhttprequest Apple 개발자 연결의 좋은 참조 페이지가 있습니다. 그것은 xmlhttprequest 클래스에 대한 훌륭한 개요와 그 방법과 속성에 대한 참조 테이블을 제공합니다. 2002 년에 게시 된이 기사는 새로운 정보로 계속 업데이트되고 있습니다. 여기에는 javaScript 객체 표기법 (JSON) 및 비누뿐만 아니라 헤드 요청 제작 (get or post 대신)에 대한 정보가 포함됩니다. - 이것은 Firefox에서 XMLHTTPREQUEST 구현에 대한 Xulplanet의 철저한 참조입니다.
여기에 또 다른 멋진 개요가 있습니다.이 개요는 다음과 같습니다.이 개요는 XMLHTTPRequest 객체의 덜 사용되지 않은 메소드 (예 : reveridemimeType, setRequestHeader 및 getResponseHeader)를 보여줍니다. 다시,이 참조는 Firefox의 구현에 중점을 둡니다 이것은 xmlhttprequest 구현에 대한 MSDN에 대한 Microsoft의 문서입니다. 요약
시스템 관리자가 여론 조사와 타임 아웃 임계 값 간격을 구성하는 방법 모니터링 프로세스를 시작하고 중지하는 쉬운 방법 이전 요청에 대한 응답 시간의 막대 그래프; 히스토리 목록의 항목 수는 사용자 구성 가능 function HelloWorld() { <br> this.message = 'Hello, world!'; <br> this.sayMessage = function() { <br> window.alert(this.message); <br> }; <br> }
입니다.사용자 알림 응용 프로그램이 요청 과정에있을 때 요청 시간 초과의 우아한 처리 -
- <..> 그림 3.1. 실행중인 응용 프로그램
-
코드 구성 <function>이 모든 새로운 기능은 우리 앱에 훨씬 더 복잡해 지므로 코드 내에서 어떤 종류의 구성을 설정하기에 좋은시기입니다 (글로벌 범위에 모든 것을 두는 것보다 훨씬 더 나은 옵션). 결국, 우리는 완전히 기능적인 Ajax 응용 프로그램을 구축하고 있으므로 올바르게 구성하고 싶습니다. </function>
-
StartDone은 "완료된"애니메이션을 설정하고 SetInterval 를 사용하여 Dodone에 대한 반복 호출을 일정에 설정합니다. dodone은 "완료된"애니메이션의 현재 프레임을 설정하고 완료되면 애니메이션을 종료합니다- 시작
애니메이션을 설정하고 시작하고 시작하는 방법은 STARTPROC 메소드를위한 작업입니다. Proc 속성을 Proc (Processing)로 설정 한 후이 코드는 SetDisplay 메소드를 호출하여 PollingMessage Div의 색상과 내용을 설정합니다. 다음에 SetDisplay를 자세히 살펴 보겠습니다 코드가 PollingMessage DIV의 색상과 내용을 설정하면 DIV의 불투명도를 100 (완전히 불투명)으로 초기화하고 DisplayOpacity를 호출 하여이 설정을 적용합니다. 마지막으로,이 메소드는 SetInterval을 호출하여 애니메이션 프로세스의 다음 단계를 예약합니다. settimeout과 마찬가지로 SetInterval 호출은 간격 ID를 반환합니다. 우리는 이것을 Procinterval 속성에 저장하여 나중에 프로세스를 중지 할 수 있습니다. - "처리…"및 "완료"애니메이션은 모두 setDisplay 메소드를 공유합니다 :
PollingMessage Div의 "처리…"과 "완료"상태의 유일한 차이점은 색상과 텍스트 이므로이 공통 기능을 사용하여 폴링 메이지 디스의 두 상태를 전환하는 것이 합리적입니다. 색상은 PollingMessage Div에 클래스를 할당하여 제어되므로 완료 및 처리 클래스에 대한 CSS 클래스 규칙을 스타일 시트에 추가해야합니다. - 시작
크로스 브라우저 코드 다행히도 대부분의 최신 브라우저 (Internet Explorer 6, Firefox 1.0, Safari 1.2 및 Opera 8 또는 이후 버전의 이러한 브라우저)는 전체적으로 웹 표준을 준수하므로 AJAX 코드에서 브라우저 별 분기를 많이 할 필요가 없습니다. 이것은 일반적으로 바탕 화면 애플리케이션보다 크로스 플랫폼을 개발하고 배포하기 위해 브라우저 기반 Ajax 응용 프로그램을 더 빨리 만들어줍니다. AJAX 응용 프로그램에 사용할 수있는 전원 및 기능이 증가함에 따라 데스크탑 응용 프로그램은 사용자 인터페이스 관점에서 더 적은 장점을 제공합니다.
1. 방법 -이 매개 변수는 사용할 HTTP 요청 방법의 유형을 식별합니다. 가장 일반적으로 사용되는 방법은 Get and Post입니다
방법은 대소 문자에 민감합니다function HelloWorld() { <br> this.message = 'Hello, world!'; <br> this.sayMessage = function() { <br> window.alert(this.message); <br> }; <br> }2. URL -이 매개 변수는 요청중인 페이지를 식별합니다 (또는 메소드가 게시되는 경우에 게시 됨). 교차 도메인
.
.
<.> 그림 3.9. 펄스 상태 표시기가있는 응용 프로그램
마지막으로, 우리는 브라우저 에서이 코드를 테스트 할 준비가되었습니다. AppMonitor2.html 열기 브라우저에서 시작 버튼을 클릭하면 펄스 처리가 표시됩니다… 그림 3.9에 표시된 것과 같이 브라우저 뷰포트의 오른쪽 상단 근처의 메시지.
<..> 그림 3.10. 완성 된 앱 모니터 .
예, XML의 'X'에도 불구하고 Ajax 응용 프로그램은 JSON (JAVASCRIPT)와 같은 다른 데이터 형식과 같은 다른 데이터 형식에서 작동 할 수 있습니다. 특히 JSON은 JavaScript에서 작업하기가 쉽고 XML보다 효율적 일 수 있기 때문에 Ajax에서 종종 사용됩니다. .
로 범위 손실
멈추게합니다 function HelloWorld() { <br>
this.message = 'Hello, world!'; <br>
this.sayMessage = function() { <br>
window.alert(this.message); <br>
}; <br>
}
var hw = new HelloWorld(); <br>
hw.sayMessage(); <br>
hw.message = 'Goodbye'; <br>
hw.sayMessage();
function HelloWorld() { <br>
this.message = 'Hello, world!'; <br>
this.sayMessage = function() { <br>
window.alert(this.message); <br>
}; <br>
}
var hw = new HelloWorld(); <br>
hw.sayMessage(); <br>
hw.message = 'Goodbye'; <br>
hw.sayMessage();
요약
에서 발췌 한 내용은 자신의 Ajax 웹 애플리케이션을 구축합니다
- 잊지 마십시오.이 기사를 .pdf 형식으로 다운로드 할 수 있습니다. 이 책에는 총 8 개의 챕터가 있으며, 그 결국 독자들은 여러 플레이어가 실시간으로 재생할 수있는 온라인 체스 게임을 포함하여 수많은 기능을 갖춘 웹 앱을 구축했을 것입니다.이 책의 목차에는 자세한 내용이 있습니다. .
.
xmlhttprequest 객체는 Ajax의 핵심 구성 요소입니다. 전체 페이지를 다시로드하지 않고 서버로 데이터를 교환하고 웹 페이지의 일부를 업데이트하는 방법을 제공합니다. 그것은 HTTP 또는 HTTPS 요청을 웹 서버로 직접 보내고 서버 응답 데이터를 스크립트에 직접로드하는 데 사용됩니다.
ajax는 XML 이외의 기술과 함께 작동 할 수 있습니까? Ajax는 페이지를 다시로드하지 않고 실시간 데이터 업데이트가 필요한 웹 애플리케이션에서 일반적으로 사용됩니다. 여기에는 라이브 검색 결과, 자동 완성 양식 필드, 대화식 맵 및 동적 콘텐츠 업데이트와 같은 응용 프로그램이 포함됩니다. 소셜 미디어 피드, 이메일 클라이언트 및 전자 상거래 사이트는 종종 AJAX를 사용하여 부드럽고 대화식 사용자 경험을 제공합니다.
AJAX 사용의 잠재적 인 단점 또는 과제는 무엇입니까? AJAX 응용 프로그램이 액세스 가능하고 Seo 친화적 인 방법을 확인할 수있는 방법은 무엇입니까? 즉, HTML로 핵심 웹 페이지를 구축 한 다음 JavaScript가 활성화 된 사용자를 위해 AJAX 기능으로 향상시킵니다. SEO의 경우 서버 측 렌더링을 사용하여 검색 엔진에 완전히 렌더링 된 페이지를 전달하는 동시에 사용자에게 빠른 AJAX 중심 경험을 제공합니다. AJAX는 데이터 보안을 어떻게 처리합니까? AJAX 응용 프로그램은 다른 웹 애플리케이션과 동일한 방식으로 데이터 보안을 처리합니다. 처리하기 전에 모든 데이터를 검증하고 소독하고 HTTPS와 같은 데이터를 전송하기위한 안전한 방법을 사용하는 것이 중요합니다. 또한 AJAX는 응용 프로그램의 내부 작업을 클라이언트 측에 더 많이 노출시킬 수 있으므로 서버 측에서 민감한 작업이 보호되도록하는 것이 중요합니다.
ajax를 React 또는 Angular와 같은 프레임 워크와 함께 사용할 수 있습니까? 이러한 프레임 워크는 종종 AJAX 요청을위한 자체 추상화를 제공하지만 기본 XMLHTTPREQUEST 객체 또는 jQuery 또는 axios와 같은 다른 라이브러리를 사용할 수도 있습니다. Ajax 응용 프로그램 디버깅은 Ajax의 비동기 특성으로 인해 기존 웹 응용 프로그램을 디버깅하는 것보다 더 복잡 할 수 있습니다. 그러나 대부분의 최신 브라우저는 AJAX 요청 및 응답을 검사하고 네트워크 활동을 모니터링하며 JavaScript 코드를 진행할 수있는 개발자 도구를 제공합니다. 또한 많은 JavaScript 라이브러리 및 프레임 워크는 AJAX 오류 및 예외를 처리하는 도구와 방법을 제공합니다.
위 내용은 자신의 Ajax 웹 응용 프로그램을 구축하십시오의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

각각의 엔진의 구현 원리 및 최적화 전략이 다르기 때문에 JavaScript 엔진은 JavaScript 코드를 구문 분석하고 실행할 때 다른 영향을 미칩니다. 1. 어휘 분석 : 소스 코드를 어휘 단위로 변환합니다. 2. 문법 분석 : 추상 구문 트리를 생성합니다. 3. 최적화 및 컴파일 : JIT 컴파일러를 통해 기계 코드를 생성합니다. 4. 실행 : 기계 코드를 실행하십시오. V8 엔진은 즉각적인 컴파일 및 숨겨진 클래스를 통해 최적화하여 Spidermonkey는 유형 추론 시스템을 사용하여 동일한 코드에서 성능이 다른 성능을 제공합니다.

실제 세계에서 JavaScript의 응용 프로그램에는 서버 측 프로그래밍, 모바일 애플리케이션 개발 및 사물 인터넷 제어가 포함됩니다. 1. 서버 측 프로그래밍은 Node.js를 통해 실현되며 동시 요청 처리에 적합합니다. 2. 모바일 애플리케이션 개발은 재교육을 통해 수행되며 크로스 플랫폼 배포를 지원합니다. 3. Johnny-Five 라이브러리를 통한 IoT 장치 제어에 사용되며 하드웨어 상호 작용에 적합합니다.

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

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

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

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

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

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


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

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

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

WebStorm Mac 버전
유용한 JavaScript 개발 도구
