페이지에 ContextHub 추가 및 저장소 액세스 adding-contexthub-to-pages-and-accessing-stores
페이지에 ContextHub를 추가하여 ContextHub 기능을 활성화하고 ContextHub Javascript 라이브러리에 연결합니다
ContextHub Javascript API는 ContextHub에서 관리하는 컨텍스트 데이터에 대한 액세스를 제공합니다. 이 페이지에서는 컨텍스트 데이터 액세스 및 조작을 위한 API의 주요 기능에 대해 간략하게 설명합니다. API 참조 설명서 링크를 따라 자세한 정보 및 코드 예제를 참조하십시오.
페이지 구성 요소에 ContextHub 추가 adding-contexthub-to-a-page-component
ContextHub 기능을 활성화하고 ContextHub Javascript 라이브러리에 연결하려면 contexthub 구성 요소를 head
섹션에 자세히 설명되어 있습니다. 페이지 구성 요소의 JSP 코드는 다음 예제와 비슷합니다.
<head>
<sling:include path="contexthub" resourceType="granite/contexthub/components/contexthub" />
</head>
또한 ContextHub 도구 모음이 미리 보기 모드에 표시되는지를 구성해야 합니다. 자세한 내용은 ContextHub UI 표시 및 숨기기.
ContextHub 저장소 정보 about-contexthub-stores
ContextHub 저장소를 사용하여 컨텍스트 데이터를 유지합니다. ContextHub에서는 모든 저장소 유형을 기반으로 하는 다음과 같은 유형의 저장소를 제공합니다.
모든 저장소 유형은 ContextHub.Store.Core
클래스 이름을 지정합니다. 새 저장소 유형 만들기에 대한 내용은 사용자 지정 저장소 만들기. 샘플 저장소 유형에 대한 자세한 내용은 샘플 ContextHub 저장소 후보.
지속성 모드 persistence-modes
Context Hub 저장소는 다음 지속성 모드 중 하나를 사용합니다.
- 로컬: HTML5 localStorage를 사용하여 데이터를 유지합니다. 로컬 저장소는 세션 간 브라우저에 유지됩니다.
- 세션: HTML5 sessionStorage를 사용하여 데이터를 유지합니다. 세션 저장소는 브라우저 세션 기간 동안 유지되며 모든 브라우저 창에서 사용할 수 있습니다.
- 쿠키: 데이터 저장소에 대한 브라우저의 기본 쿠키 지원을 사용합니다. 쿠키 데이터는 HTTP 요청에서 서버로 및 서버에서 전송됩니다.
- Window.name: window.name 속성을 사용하여 데이터를 유지합니다.
- 메모리: Javascript 개체를 사용하여 데이터를 유지합니다.
기본적으로 Context Hub는 로컬 지속성 모드를 사용합니다. 브라우저에서 HTML5 localStorage를 지원하지 않거나 허용하지 않는 경우 세션 지속성이 사용됩니다. 브라우저가 HTML5 sessionStorage를 지원하지 않거나 허용하지 않는 경우 Window.name 지속성이 사용됩니다.
데이터 저장 store-data
내부적으로, 데이터 형식은 트리 구조로 저장되므로 값을 기본 형식 또는 복잡한 개체로 추가할 수 있습니다. 저장소에 복잡한 개체를 추가하면 개체 속성이 데이터 트리에 분기됩니다. 예를 들어 다음 복잡한 개체가 location이라는 빈 저장소에 추가됩니다.
Object {
number: 321,
data: {
city: "Basel",
country: "Switzerland",
details: {
population: 173330,
elevation: 260
}
}
}
저장소 데이터의 트리 구조는 다음과 같이 개념화할 수 있습니다.
/
|- number
|- data
|- city
|- country
|- details
|- population
|- elevation
트리 구조는 저장소의 데이터 항목을 키/값 쌍으로 정의합니다. 위의 예에서 키 /number
는 값에 해당합니다 321
, 및 키 /data/country
는 값에 해당합니다 Switzerland
.
개체 조작 manipulating-objects
ContextHub에서는 다음을 제공합니다 ContextHub.Utils.JSON.tree
Javascript 개체를 조작하기 위한 클래스입니다. 저장소에 추가하기 전에 또는 저장소에서 가져온 후에 Javascript 개체를 조작하는 데 이 클래스의 함수를 사용합니다.
또한 ContextHub.Utils.JSON
클래스는 개체를 문자열로 직렬화하고 문자열을 객체로 역직렬화하는 함수를 제공합니다. 기본적으로 를 포함하지 않는 브라우저를 지원하려면 JSON 데이터를 처리하는 데 이 클래스를 사용합니다 JSON.parse
및 JSON.stringify
함수 위에 있어야 합니다.
ContextHub 스토어와 상호 작용 interacting-with-contexthub-stores
를 사용하십시오 ContextHub
저장소를 Javascript 개체로 가져올 Javascript 개체. 저장소 개체를 가져오면 포함된 데이터를 조작할 수 있습니다. 를 사용하십시오 getAllStores
또는 getStore
함수를 사용하여 스토어를 가져옵니다.
저장소 데이터 액세스 accessing-store-data
다음 ContexHub.Store.Core
Javascript 클래스는 저장소 데이터와 상호 작용하기 위한 여러 함수를 정의합니다. 다음 함수는 개체에 포함된 여러 데이터 항목을 저장하고 검색합니다.
개별 데이터 항목은 키/값 쌍 세트로 저장됩니다. 값을 저장하고 검색하려면 해당 키를 지정합니다.
사용자 지정 저장소 후보들은 데이터를 저장할 수 있는 액세스 권한을 제공하는 추가 기능을 정의할 수 있습니다.
ContextHub 이벤트 contexthub-eventing
ContextHub에는 이벤트를 저장하는 데 자동으로 대응할 수 있는 이벤트 프레임워크가 포함되어 있습니다. 각 저장소 개체에는 ContextHub.Utils.Eventing
저장소에서 사용할 수 있는 개체 eventing
속성을 사용합니다. 를 사용하십시오 on
또는 once
함수를 사용하여 Javascript 함수를 스토어 이벤트에 바인딩합니다.
Context Hub를 사용하여 쿠키 조작 using-context-hub-to-manipulate-cookies
Context Hub Javascript API는 브라우저 쿠키 처리에 대한 브라우저 간 지원을 제공합니다. 다음 ContextHub.Utils.Cookie
네임스페이스는 쿠키를 만들고, 조작하고, 삭제하는 몇 가지 함수를 정의합니다.
해결된 ContextHub 세그먼트 확인 determining-resolved-contexthub-segments
ContextHub 세그먼트 엔진을 사용하면 현재 컨텍스트에서 해결된 등록된 세그먼트 중 하나를 결정할 수 있습니다. 의 getResolvedSegments 함수 사용 ContextHub.SegmentEngine.SegmentManager
해결된 세그먼트를 검색할 클래스입니다. 그런 다음 getName
또는 getPath
함수 ContextHub.SegmentEngine.Segment
세그먼트를 테스트할 클래스입니다.
설치된 세그먼트 installed-segments
ContextHub 세그먼트는 /conf/we-retail/settings/wcm/segments
노드 아래에 있어야 합니다.
- 여성
- 여성-30
- 여성 이하 30
- 남성
- 남성 초과 30
- 남성-30
- order-value-75-100
- order-value-over-100
- 초과 30
- 여름
- 여름 여성
- 여름 여성-over-30
- 여름 여자-30
- 여름 남자
- 여름 남성-초과-30
- 여름 남자-언더파 30
- 30세 이하
- 겨울
- 겨울 여자
- 겨울 여자-30
- 겨울 여자-30세
- 겨울 남자
- 겨울 남자-over-30
- 겨울 남자-언더파 20
이러한 세그먼트를 해결하는 데 사용되는 규칙은 다음과 같이 요약됩니다.
ContextHub에 대한 디버그 메시지 로깅 logging-debug-messages-for-contexthub
Granite ContextHub OSGi 서비스 Adobe 구성(PID = com.adobe.granite.contexthub.impl.ContextHubImpl
)을 클릭하여 개발할 때 유용한 세부 디버그 메시지를 기록합니다.
서비스를 구성하려면 웹 콘솔 또는 저장소의 JCR 노드:
- 웹 콘솔: 디버그 메시지를 기록하려면 디버그 속성을 선택합니다.
- JCR 노드: 디버그 메시지를 기록하려면 부울을 설정합니다
com.adobe.granite.contexthub.debug
속성 대상true
.
ContextHub 프레임워크 개요 를 참조하십시오 see-an-overview-of-the-contexthub-framework
ContextHub에서는 다음을 제공합니다 진단 페이지 여기서 ContextHub 프레임워크에 대한 개요를 볼 수 있습니다.