ItsNat
ItsNat| 초기 릴리즈 | 2007년 11월 1일 |
|---|---|
| 안정적 해제 | 1.4 / 2015년 9월 18일 |
| 기록 위치 | 자바 |
| 운영 체제 | 크로스 플랫폼: JVM |
| 유형 | 아약스 프레임워크 |
| 면허증 | 이중 라이선스: LGPL, 독점[1] |
| 웹사이트 | www |
ItsNat Natural AJAX는 오픈 소스 Java 컴포넌트 기반 Ajax 프레임워크다.
개요
ItsNat은 서버에서 실행되는 Java 응용프로그램 내의 가상 브라우저를 시뮬레이션한다.이 가상 브라우저는 W3C의 DOM 레벨 2 노드 트리를 사용하는 문서를 나타내며, 서버에서 실행 중인 외부 자바 코드에 의해 언제든지 문서를 변경할 수 있다.AJAX를 통해 실제 사용자의 브라우저는 서버의 가상 브라우저와 동기화되어 유지되며, W3C DOM 이벤트를 그것에 전달할 수 있다.[2]예를 들어 이것은 서버의 통제 하에 실제 브라우저의 자동 테스트에 사용될 수 있다.[3]
버전 1.3 ItsNat은 새로운 상태 비저장 모드를 제공한다.
IsNat은 서버 중심 SEO 호환 단일 페이지 애플리케이션 및 웹 사이트에 초점을 맞추고 있다.
작동 방식
- 상태 저장 모드
개발자가 Java W3C DOM API를 사용하여 서버 DOM 트리를 수정하면, 이 수정 사항이 감지되어(DOM 돌연변이 이벤트를 발생) JavaScript DOM 기반 코드로 자동으로 전송되어 클라이언트 DOM을 동기화하며, 일반적으로 AJAX 이벤트의 응답으로 클라이언트 DOM을 동기화한다(ItsNat은 AJAX에 크게 기반함).
서버의 개발자 코드는 W3C DOM 이벤트를 청취하는 Java W3C DOM 이벤트 수신기를 등록할 수 있으며, 이 수신기 등록은 클라이언트에 자동으로 전파된다.예를 들어 사용자가 "수신된" 요소를 클릭하면 실제 브라우저 이벤트가 AJAX를 사용하여 서버로 전송되고 W3C DOM 이벤트로 변환되어 서버 기반 수신기에 의해 수신된다.
원본 페이지 레이아웃은 논리 없이 순수 HTML, XHTML, SVG 또는 XUL 기반 템플릿을 사용하여 정의된다.수정이 큰 ItsNat이 "템플릿 조각"을 제공하는 경우 템플릿 조각은 주 트리에 정적 또는 동적으로(일반적으로 사용자/Ajax 이벤트의 응답으로) DOM으로 삽입(포함)할 수 있는 마크업 조각이다.
서버 메모리를 저장하기 위해 IsNat은 DOM이 아닌 일반 텍스트로 DOM 트리 노드 캐시를 직렬화된 형태로 제공하며 더 이상 사용하지 않는 DOM 하위 트리는 서버 저장 메모리에서만 수동으로 제거할 수 있다(클라이언트 DOM은 변경되지 않은 상태로 유지됨).
ItsNat은 동일한 클라이언트-서버 DOM 계약에도 불구하고 ItsNat이 아닌 JavaScript 코드에 의해 도입된 DOM 노드에 어느 정도 내성을 제공하며, 서버의 정적 존은 비 ItsNat JavaScript 코드에 의해 관리될 수 있으며, 서버에서만 제거된 DOM 하위 트리는 클라이언트에서 자유롭게 변경할 수 있으며, 일부 위치(머리 및 본체 요소의 끝 부분)에서는 "침입성"노드는 허용된다.
- 상태 비저장 모드
버전 1.3에 도입된 상태 비저장 모드에서 클라이언트 페이지는 AJAX 요청을 통해 현재 상태의 필요한 사용자 정의 데이터를 서버에 전송하며, 이 데이터를 가진 서버는 수정될 클라이언트 DOM 상태를 부분적으로 또는 완전히 재구성하고 필요한 JavaScript DOM 코드를 생성하여 클라이언트에 반환하여 가져올 수 있다.일반적으로 클라이언트 페이지 DOM 트리를 요청 동기에 따라 수정하는 새로운 상태로 변경한다.이 모드는 상태 저장 모드보다 미세하고 성능이 뛰어나지 않을 수 있지만, 서버에 보관된 클라이언트 페이지당 데이터가 없으므로 AJAX 요청이 상태 저장 모드에서 세션 데이터 공유나 서버 선호도 없이 서로 다른 서버 노드로 디스패치될 수 있기 때문에 이 접근방식은 더 쉽게 확장 가능하다.
핵심 기능
- 서버에서 자동 클라이언트 동기화.
- 클라이언트에서 자동 서버 동기화 지원
- 웹 지속: 이벤트 "계속"
- 사용자 정의 이벤트 유형.
- AJAX 타이머.
- 장기 실행 중인 비동기 서버 작업: 완료 시 클라이언트 알림
- 특수(NIO 또는 유사한) 서블릿 엔진 없는 혜성.
- 서버 측 DOM 활용: 목록, 트리, ElementCSSInlineStyle 지원 등과 같은 DOM 조작 단순화
- 마크업에서 ${} 기반 변수 분해능: Java DOM 코드를 콘크리트 레이아웃에서 가능한 한 독립적으로 유지하도록 돕는다.
- 마크업 조각: Single Page Interface에서 매우 유용하게 사용할 페이지의 동적 부분 삽입
- XHTML 및 응용 프로그램/xhtml+xml MIME에 인라인으로 내장된 SVG 및 기타 네임스페이스.
- SVG 및 기타 네임스페이스, X/HTML 및 텍스트/html MIME에 인라인 내장
- 네이티브 SVG가 있는 브라우저.
- SVG DOM의 동적 처리를 포함한 Adobe SVG Viewer(v3.0) 플러그인이 포함된 MSIE.
- SVGWeb을 사용하여 플래시를 지원하는 모든 브라우저.
- 기본 SVG가 있는 브라우저에서 AJAX를 포함한 순수한 SVG 문서 또는 Adobe SVG Viewer 또는 Savarese Ssrc 플러그인이 있는 MSIE.
- Gecko 브라우저(예: FireFox)의 AJAX 또는 Savarese Ssrc 플러그인이 있는 MSIE를 포함한 순수 XUL 문서.
- XML 생성.
- IFRAME/Object/Embed/Applet 자동 바인딩: IFRAME에 의해 열린 서버 하위 문서에서 OBject, EMBLET 또는 APPLET 태그는 서버의 상위 문서에 자동으로 바인딩된다.이 기능은 다음과 함께 작동한다.
- IFRAME에 의해 로드된 X/HTML.
- IFRAME/OBject/EMBED에 의해 로드된 SVG는 Adobe SVG Viewer 또는 Savarese Ssrc: OBTER와 EMBED가 있는 브라우저에서 로드된 SVG.
- Batik 애플릿(ItsNat용 사용자 지정 버전)이 APPLET/OBject/EMbed에 로드한 SVG.
- Java에서 JavaScript 생성 유틸리티.
- 실제 브라우저를 사용하여 서버 발송 이벤트(서버가 사용자 작업을 시뮬레이션하는 클라이언트에게 발송한 이벤트) 또는 예를 들어 서버에서 사용자 작업을 시뮬레이션하거나 클라이언트를 시뮬레이션하는 클라이언트 보기를 테스트하기 위해 시뮬레이션된 이벤트
- 레퍼러: 페이지 네비게이션에서, 서버의 이전 문서를 입수하여 페이지 기반 응용프로그램의 세션 데이터를 회피하는 모든 데이터를 복사할 수 있다: 네비게이션은 뒤로/앞으로/다시 로드 지원을 포함한다; 푸시와 당김의 두 가지 모드.
- 성능 저하 모드:AJAX 사용 안 함 및 JavaScript 사용 안 함 모드
- 익스트림 매시업.
- AJAX 책갈피: 또는 단일 페이지 인터페이스 응용프로그램에서 책갈피 지정.
- 예쁜 URL.
- 다른 사용자/세션의 자동 페이지 원격/보기 제어
- 원격 템플릿.
컴포넌트 시스템
IsNat은 프레임워크의 핵심 기능을 사용하여 구축된 선택적 컴포넌트 시스템을 제공한다.이들 구성요소는 AJAX 기반이며 스윙에서 영감을 받아 데이터, 선택 모델 등 가능한 한 스윙을 재사용하지만 ItsNat은 웹에서 스윙 클론이 아니며 픽셀 기반의 웹 프레임워크도 아니다.
IsNat은 텍스트 기반 구성 요소, 레이블, 목록, 테이블, 트리 등 여러 버튼 유형을 제공하며, 일반적으로 내용을 편집할 수 있는 "적재" 기능을 제공한다.
HTML 요소는 구성요소가 될 수 있다. 예를 들어, 모든 구성요소는 일반 버튼, 확인란, 라디오 버튼, 구성요소 목록은 콤보 또는 목록 구성요소일 수 있다. 예를 들어, SVG 서클 그룹은 다중 선택 목록 구성요소가 될 수 있다.XML을 생성하는 데도 구성요소를 사용할 수 있다.
itsNat 구성요소는 개발자가 구성요소 보기(마크업)를 제공하고 구성요소에 부착하기 때문에 침입하지 않는다.
필수 조건, 플랫폼
ItsNat은 순수한 Java이며 최소 구성 및 사실상 모든 서블릿 호환 컨테이너로 모든 Java Virtual Machine v1.5에서 실행된다.
- 지원되는 데스크톱 브라우저
Google Chrome, Firefox, Internet Explorer 6+(v9 포함), Opera 12.12+ 및 Safari 5.1.7+
- 모바일 브라우저(AJAX 포함)
SVG 플러그인(AJAX 포함):Adobe SVG Viewer v3 [1], Savarese Ssrc [2](XUL을 MSIE에도 추가), SVGWeb [3], Batik을 애플릿으로 추가.