在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

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

评论

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

云原生最佳实践系列 4:基于 MSE 和 SAE 的微服务部署与压测

阿里巴巴云原生

阿里云 微服务 云原生

如何提升买家对独立站的信任感?提升转化率的技巧

技术冰糖葫芦

API 接口 API 文档

JavaScript混淆工具选择与使用指南

左手医生:医疗 AI 企业的云原生提效降本之路

阿里巴巴云原生

阿里云 容器 云原生

浅谈开放词汇目标检测

inBuilder低代码平台

目标检测

掌握ADB:详解操作命令及完整用法指南

霍格沃兹测试开发学社

深入了解 Docker Compose:简化容器化应用部署的利器

霍格沃兹测试开发学社

怎样让 API 快速且轻松地提取所有数据?

技术冰糖葫芦

API 接口 API 文档

如何利用ChatGPT进行翻译--精准翻译篇

三七互娱后端技术团队

AI翻译

【FAQ】HarmonyOS SDK 闭源开放能力 —Scan Kit

HarmonyOS SDK

HarmonyOS

聚道云助力:易快报CDP无缝对接,登录同步一步到位!

聚道云软件连接器

案例分享

数据安全之路:Databend 用户策略指南

Databend

JMeter读取CSV文件实现参数化技术指南

霍格沃兹测试开发学社

小程序应用市场发展趋势分析

Onegun

小程序 小程序平台

28+岗位!百度安全2025届实习生招聘火热进行中

百度安全

聊聊低代码产品的应用场景

互联网工科生

一个基于.NET Core构建的简单、跨平台、模块化的商城系统

不在线第一只蜗牛

小程序 .net core

网站首屏优化 | 提升首屏的几个简单手段

观测云

性能优化 前端

无人不识又无人不迷糊的this

不在线第一只蜗牛

Java 前端 开发语言

让 AI 帮你写代码,开发提效神器来了

阿里巴巴云原生

阿里云 AI 云原生

Golang DB连接池ErrBadConn的应用

三七互娱后端技术团队

golang MySQL

如何利用ChatGPT进行翻译--通用翻译篇

三七互娱后端技术团队

AI翻译

为什么Solana在区块链生态系统中脱颖而出

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

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