写点什么

使用 Netflix Falcor 获取 JSON 数据

  • 2015-08-25
  • 本文字数:863 字

    阅读完需:约 3 分钟

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="<a href="https://netflix.github.io/falcor/build/falcor.browser.js%22">https://netflix.github.io/falcor/build/falcor.browser.js"</a>></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


感谢邵思华对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-08-25 19:002575

评论

发布
暂无评论
发现更多内容

低代码开发平台与 Vue.js 的深度融合

秃头小帅oi

【YashanDB知识库】YashanDB 支持MySQL多表更新语句的解决方法

YashanDB

数据库 yashandb

硬件信息监测软件iStat Menus for mac中文激活版

小玖_苹果Mac软件

简洁高效的多窗格文件管理器QSpace Pro for mac中文激活版

小玖_苹果Mac软件

优秀的词典工具Eudic欧路词典 for Mac中文激活版

小玖_苹果Mac软件

炸裂:SpringAI内置DeepSeek啦!

王磊

基于人工智能技术的图像处理软件Topaz Photo AI for mac激活版

小玖_苹果Mac软件

JDK8到JDK17都升级了那些新特性?又有哪些能常用好用的?

不在线第一只蜗牛

Python jdk

项目管理资格证书对职业发展的7大影响

薛同学

高效前端应用:基于 Vue3 的低代码开发实践

秃头小帅oi

BRASS管乐器演奏插件Arturia Augmented BRASS for mac激活版

小玖_苹果Mac软件

AMD 锐龙 7 9800X3D 处理器被曝看视频时烧毁

E科讯

Klook获1亿美元融资,推动全球旅游体验行业持续增长

财见

DeepSeek正重构人形机器人和具身大模型赛道!

机器人头条

科技 大模型 人形机器人 具身智能

人工智能丨个人如何用DeepSeek做副业

测试人

人工智能

【YashanDB知识库】MySQL和YashanDB 隐式转换不一致引起的报错

YashanDB

数据库 yashandb

《王者荣耀》鸿蒙版上线后首次全民竞技之约!无缝流转新体验

最新动态

一键部署+限免体验!盘点如何在华为云上体验DeepSeek

华为云开发者联盟

AI 华为云 大模型 昇腾云 DeepSeek

DS缩写乱争:当小海豚撞上AI顶流,技术圈也逃不过“撞名”修罗场

白鲸开源

开源 Apache DolphinScheduler DeepSeek DeepSeek v3 DeepSeek-R1、

全球人形机器人行业2024年度汇总和行业前瞻报告

机器人头条

科技 大模型 人形机器人 具身智能

音频合成器插件Arturia Analog Lab Pro V for mac直装激活版

小玖_苹果Mac软件

实用的iPhone数据恢复软件PhoneRescue for iOS中文激活版

小玖_苹果Mac软件

全链路数据引擎:WhaleStudio驱动下的大数据调度与同步智能革新

白鲸开源

数据集成 数据源 数据调度 白鲸开源 WhaleStudio

人工智能丨deepseek是什么?我们能用它来做什么?

测试人

人工智能

Vue.js 与低代码开发:如何实现快速应用构建

伤感汤姆布利柏

【YashanDB知识库】从PostgreSQL迁移到YashanDB如何进行数据行数比对

YashanDB

数据库 yashandb

低代码+AI!DeepSeek新时代,老板们坐不住了!

引迈信息

沉浸式演示:在新老项目中如何快速上手通义灵码 AI 程序员

阿里巴巴云原生

阿里云 云原生 通义灵码

沉浸式演示:在新老项目中如何快速上手通义灵码 AI 程序员

阿里云云效

阿里云 云原生 通义灵码 AI程序员

使用Netflix Falcor获取JSON数据_开源_Abel Avram_InfoQ精选文章