写点什么

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

评论

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

零基础自学黑客/渗透/网络安全必备知识(详细版),啃完这些足够了

网络安全学海

黑客 网络安全 安全 信息安全 渗透测试

AI 未来已至,向量数据库站在新的节点上

Zilliz

英伟达 非结构化数据 Milvus 向量数据库

CSIG企业行-走进合合信息成功举行,聚焦生成式人工智能、智能文档处理前沿热点

合合技术团队

人工智能 图像识别 ChatGPT 文档处理 生成式人工智能

软件测试/测试开发丨app自动化测试之Appium问题分析及定位

测试人

软件测试 自动化测试 测试开发 appium

GameFi游戏NFT链游开发系统搭建技术

薇電13242772558

NFT

低代码开发,一场深度的IT效率革命

引迈信息

前端 软件开发 低代码 JNPF

上海·得物技术沙龙「安全专场」开启报名啦!快来查收你的技术安全白皮书

得物技术

活动

腾讯T4整合Spring+Spring MVC+MyBatis+Redis实现,附源码

Java redis 面试 SSM框架

证书过期为何频频发生,该如何避免?

不思jo

故障 #运维

成年人自学黑客,远比你想的更难......

喀拉峻

程序员 黑客 网络安全 计算机 渗透测试

告别“公厕”脏乱差,光明源智慧公厕推进城市智慧化建设

光明源智慧厕所

智慧城市

软件测试/测试开发丨app自动化测试之Appium 源码分析

测试人

软件测试 自动化测试 测试开发 appium

揭秘ChatGPT背后天价超算!上万颗英伟达A100,烧光微软数亿美元

Openlab_cosmoplat

微软 开源社区 ChatGPT

Kruise Rollout v0.3.0:教你玩转 Deployment 分批发布和流量灰度

阿里巴巴中间件

阿里云 云原生 OpenKruise

如何手写一个SpringBoot starter组件

软件测试/测试开发丨app自动化测试之Appium 原理 与 JsonWP 协议分析

测试人

软件测试 自动化测试 测试开发 appium

2022年总结之 禅道团队扩张篇

禅道项目管理

混合多云第二课——混合技术如何每年为京东节省上亿元成本?

京东科技开发者

云原生 混合云 混合多云

阿里云EMAS:2月产品动态

移动研发平台EMAS

阿里云 移动开发 移动研发平台 emas

稳定可靠安全无忧,华为云发布代码托管服务CodeArts Repo

科技怪授

牛掰!“基础-中级-高级”Java程序员面试集结,看完献出我的膝盖

Java java面试 Java八股文 Java面试题 Java面试八股文

软件测试类型有哪些?它们之间的区别和联系

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

测试

HashData携手新炬网络 共推国产云数仓产业发展

酷克数据HashData

Java开发一年不到,来面试居然敢开口要20K,面完连8K都不想给~

程序知音

Java 编程语言 java面试 java架构 八股文

2022年总结之 禅道团队成长篇

禅道项目管理

KubeVela 为 CNCF 孵化器带来软件交付控制平面能力

阿里巴巴中间件

阿里云 开源 云原生 KubeVela

架构训练营模块八作业

gigifrog

架构训练营

《2023产业互联网安全十大趋势》发布,研判产业安全新趋势

极客天地

全球使用率最高的五款3DMax插件,总有一款适合你

Finovy Cloud

软件 3ds Max

视频转换工具:MacX Video Converter Pro中文版

真大的脸盆

Mac Mac 软件 视频转换 格式转换器

平庸的恐惧,就业的烦恼——致互联网人进退两难的35岁!

禅道项目管理

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