最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

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

评论

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

最受欢迎的5种编程语言各有什么特点或优点?

源字节1号

软件开发 后端开发 编程语言、

OpenHarmony 3.1 Release正式发布,标准系统全方位升级!

叶落便知秋

client-go实战之四:dynamicClient

爱好编程进阶

Java 面试 后端开发

如何撰写出有效的帮助文档内容?

小炮

帮助文档

TiUP:TiDBAer 必备利器

PingCAP

TiDB

java培训:java流中的异常处理方法分享

@零度

JAVA开发 java流

我,机器学习工程师,决定跑路了

OneFlow

机器学习 深度学习 AI 程序人生 MLOps

视频画质增强最优解:微帧科技视频超高清引擎

微帧Visionular

计算机视觉 视频增强 电影修复

美区块链公司Espresso Systems口碑滑坡:知识产权、团队道德皆陷丑闻

西柚子

助力 60+ 市区管理建设,TDengine 联手数字政通打造智慧城市平台

TDengine

数据库 tdengine 时序数据库

大数据培训经典SQL面试题解析

@零度

sql 大数据开发

jackson学习之三:常用API操作

爱好编程进阶

Java 面试 后端开发

Mybatis源码解析:sql参数处理,原来可以这么简单-1

爱好编程进阶

Java 面试 后端开发

大咖实战|Kubernetes自动伸缩实现指南分享

云智慧AIOps社区

Docker 云计算 Kubernetes 容器 云原生

【直播回顾】OpenHarmony 3.1 Release版本南北向关键能力解读

OpenHarmony开发者

OpenHarmony 直播回放

GPU底层技术、全球市场格局分析

Finovy Cloud

人工智能 云计算 云服务器 GPU服务器 GPU算力

Apache ShardingSphere 5.1.1 正式发布

SphereEx

Apache 数据库 开源 ShardingSphere SphereEx

web前端培训如何使用CSS连接数据库

@零度

CSS 前端开发

大型IM系统有多难?万字长文,搞懂异地多活!

WorkPlus

ZEGO 最后一公里网络传输的容灾及优化方案

ZEGO即构

后台开发 容灾 最后一公里

API 分页探讨:offset 来分页真的有效率吗?

爱好编程进阶

Java 面试 后端开发

JAVA 最常用实用的正则表达式校验

爱好编程进阶

Java 面试 后端开发

JAVA8之后的版本履历

爱好编程进阶

Java 面试 后端开发

找工作,你被“卷”到了吗?

InfoQ写作社区官方

招聘 就业 热门活动 拉勾招聘

client-go实战之五:DiscoveryClient

爱好编程进阶

Java 面试 后端开发

jackson学习之九:springboot整合(配置文件)

爱好编程进阶

Java 面试 后端开发

MyCat教程【简单介绍】

爱好编程进阶

Java 面试 后端开发

源码级别的广播与监听实现

阿Q说代码

spring源码 实战 监听 4月月更 广播

CentOS 停止维护,一文看懂升级迁移路径

亚马逊云科技 (Amazon Web Services)

Tech 专栏

Elasticsearch文档读写模型实现原理

爱好编程进阶

Java 面试 后端开发

Java集合框架(四)

爱好编程进阶

Java 面试 后端开发

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