2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

使用 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:002553

评论

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

技术写作与内容研究:主题得分、关键词搜索量、社区和论坛策略

小万哥

程序人生 后端开发 技术写作 关键词搜索 社区和论坛

网站遇到DDOS攻击该怎么解决?

德迅云安全杨德俊

安全 DDoS 网站优化 #web

【终极教程】Cocos2dx服务端重构(优化cocos2dx服务端)

数字化时代:普通人的应对策略与准备

AI 计算机 数字化时代 自媒体 人工智能「

深度学习:人工智能的前沿探索

测吧(北京)科技有限公司

测试

测试开发 | 卷积神经网络(CNN):图像识别的骨干

测吧(北京)科技有限公司

测试

测试开发 | 循环神经网络(RNN):时序数据的魔法笔

测吧(北京)科技有限公司

测试

【新手升级必看】从 TiDB v6.5升级到 v7.5 的实践步骤

TiDB 社区干货传送门

版本升级

危机来临,防御性编程能否帮助程序员抵御裁员风暴?

飞算JavaAI开发助手

Socket.D 基于消息的响应式应用层网络协议

不在线第一只蜗牛

网络协议 应用层 网络通讯

TiDB在银行业核心系统POC测试应用压测参考手册

TiDB 社区干货传送门

性能调优 性能测评 数据库架构设计 应用适配 OLTP 场景实践

TiDB v7.5.0 vs Oceanbase v4.2.1.1 : online ddl 吐血验证测试

TiDB 社区干货传送门

Eclipse、IntelliJ IDEA、PyCharm三种IDE的区别

小魏写代码

【第七在线】可持续时尚与商品计划:减少库存浪费的方法

第七在线

测试开发 | 长短时记忆网络(LSTM):时序信息的记忆大师

测吧(北京)科技有限公司

测试

全面解读《State of PostgreSQL 2023》报告

酷克数据HashData

五种简单保护网站安全的方法看这里!

行云管家

网络安全 网站 数据安全 网站安全

【资源汇总】TiDB-TiCDC 源码解读系列最全资源!!!

TiDB 社区干货传送门

记三次升级 TiDB 集群到 v6.1.5 遇到的案例分析过程&升级收益

TiDB 社区干货传送门

版本升级 管理与运维 6.x 实践

以裸眼3D为例,未来户外数字媒体如何演变?

Dylan

技术 媒体 数字 3D 设备

基于Flink SQL 和 Paimon 构建流式湖仓新方案

Apache Flink

大数据 flink 实时计算

测试开发 | 深度学习的引擎:神经网络结构探析

测吧(北京)科技有限公司

测试

条件编译 | AI工程化部署

AIWeker

c AI AI工程化部署

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