使用Netflix Falcor獲取JSON數據
Netflix開源了JavaScript庫 Falcor ,它為從多個來源獲取JSON數據提供了模型和異步機制。
Netflix利用Falcor庫實現通過JSON數據填充他們網頁應用的用戶界面。所有來自內存緩存或者多個數據庫的后端數據,都通過一個虛擬 JSON對象進行建模。這個JSON對象被稱為“虛擬”,是因為從客戶端的視角來看,這些數據來自內存,而事實上這些數據可能來自本地或者遠程數據庫。
數據通過 JSON圖 提供,可以通過使用 DataSource 接口提供的get、set和call這幾個異步方法操作。客戶端能夠通過類似直接訪問JSON數據的方式,通過使用JavaScript路徑的方式來遍歷JSON圖。為了便于演示,我們使用這個最小JSON對象:
{ "greeting": "Hello World" }
如果這個JSON對象存儲在model.json文件中,那么訪問這個對象可以這樣做:
<script src="https://netflix.github.io/falcor/build/falcor.browser.js"></script> <script> var model = new falcor.Model({source: new falcor.HttpDataSource('/model.json') }); // 從虛擬JSON資源的根節點獲取“greeting”鍵的值 model. get("greeting"). then(function(response) { document.write(response.json.greeting); }); </script>
Falcor包含一個路由,它隱藏了實際數據存儲,指示調用負責獲取數據的相應后端服務。另外,當數據獲取回來后會被緩存起來,以避免后續對數據庫的訪問。Falcor也能夠批處理多個請求,將它們合并成一個網絡請求,如果當前已經有一個數據庫請求,Falcor也不會重復請求。
Netflix已經將 Falcor開放到GitHub上 ,請求社區來幫助查找和修復缺陷,并與各種MVC框架進行集成。
查看英文原文: Getting JSON Data with Netflix Falcor
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!