將ContextHub添加到頁面和訪問儲存

將ContextHub添加到您的頁面以啟用ContextHub功能並連結到ContextHub Javascript庫。

ContextHub Javascript API提供對ContextHub管理的上下文資料的訪問。 本頁簡要介紹了用於訪問和操作上下文資料的API的主要功能。 按照指向API參考文檔的連結查看詳細資訊和代碼示例。

將ContextHub添加到頁面元件

要啟用ContextHub功能並連結到ContextHub Javascript庫,請包括 contexthub 元件 head 的子菜單。 頁面元件的HTL代碼應與以下示例類似:

<sly data-sly-resource="${'contexthub' @ resourceType='granite/contexthub/components/contexthub'}"/>

請注意,您還需要配置ContextHub工具欄是否顯示在「預覽」模式下。 請參閱 顯示和隱藏ContextHub UI

關於ContextHub儲存

使用ContextHub儲存保留上下文資料。 ContextHub提供以下類型的儲存,這些儲存構成了所有儲存類型的基礎:

所有儲存類型都是 ContextHub.Store.Core 類。 有關建立新儲存類型的資訊,請參見 建立自定義儲存。 有關示例儲存類型的資訊,請參見 示例ContextHub儲存候選

持久性模式

上下文中心儲存使用以下持久性模式之一:

  • 本地: 使用HTML5 localStorage保留資料。 本地儲存在瀏覽器上跨會話永續。
  • 會話: 使用HTML5 sessionStorage保留資料。 會話儲存在瀏覽器會話的持續時間內被保留,並且可用於所有瀏覽器窗口。
  • Cookie: 使用瀏覽器對Cookie的本機支援來儲存資料。 在HTTP請求中,Cookie資料會發送到伺服器並從伺服器發送。
  • Window.name: 使用window.name屬性保留資料。
  • 記憶體: 使用Javascript對象保留資料。

預設情況下,上下文中心使用本地持久性模式。 如果瀏覽器不支援或允許HTML5 localStorage,則使用會話持久性。 如果瀏覽器不支援或允許HTML5sessionStorage,則使用Window.name持久性。

存放資料

在內部,儲存資料形成樹結構,使值能夠添加為主要類型或複雜對象。 將複雜對象添加到儲存時,對象屬性會在資料樹中形成分支。 例如,以下複雜對象將添加到名為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

操作對象

ContextHub提供 ContextHub.Utils.JSON.tree 用於操作Javascript對象的類。 在將Javascript對象添加到儲存或從儲存獲取這些對象之前,請使用此類的函式來操作它們。

此外, ContextHub.Utils.JSON 類提供了將對象序列化為stings和將字串反序列化為對象的函式。 使用此類處理JSON資料以支援本機不包含的瀏覽器 JSON.parseJSON.stringify 的子菜單。

與ContextHub儲存交互

使用 ContextHub Javascript對象以Javascript對象形式獲取儲存。 獲得儲存對象後,您就可以處理它包含的資料。 使用 getAllStoresgetStore 函式獲取儲存區。

訪問儲存資料

ContexHub.Store.Core Javascript類定義了幾個用於與儲存資料交互的函式。 以下函式儲存和檢索對象中包含的多個資料項:

單個資料項被儲存為一組鍵/值對。 要儲存和檢索值,請指定相應的鍵:

請注意,自定義儲存候選項可以定義其他功能,以提供對儲存資料的訪問。

注意

預設情況下,ContextHub不知道當前登錄在發佈伺服器上使用的用戶,ContextHub將這些用戶視為「匿名」。

通過載入配置檔案儲存,可以使ContextHub瞭解登錄的用戶。 請參閱 此處GitHub上的示例代碼

ContextHub事件

ContextHub包含一個事件框架,使您能夠自動對儲存事件做出反應。 每個儲存對象都包含 ContextHub.Utils.Eventing 可用作商店的 eventing 屬性。 使用 ononce 函式將Javascript函式綁定到儲存事件。

使用上下文中心處理Cookie

Context Hub Javascript API為處理瀏覽器Cookie提供了跨瀏覽器支援。 的 ContextHub.Utils.Cookie 命名空間定義了用於建立、操作和刪除cookie的多個函式。

確定已解析的ContextHub段

ContextHub段引擎使您能夠確定在當前上下文中解析哪些已註冊段。 使用的getResolvedSegments函式 ContextHub.SegmentEngine.SegmentManager 類以檢索已解析的段。 然後,使用 getNamegetPath 函式 ContextHub.SegmentEngine.Segment 類到段的test。

ContextHub 區段

ContextHub網段安裝在 /conf/<site>/settings/wcm/segments 的下界。

以下段隨 WKND教程站點。

用於解決這些段的規則概述如下:

警告

安裝的段作為參考配置提供,以幫助您為項目構建自己的專用配置,因此不應直接使用。

調試ContextHub

有許多用於調試ContextHub的選項,包括生成日誌。 請參閱 配置ContextHub以瞭解詳細資訊。

請參閱ContextHub框架概述

ContextHub提供 診斷頁 其中可以看到ContextHub框架的概述。

本頁內容