如何使用VueJS和GraphQL-Yoga缓存GraphQL请求

时间:2019-04-29 13:32:02

标签: vue.js caching graphql

我有一个Vue2应用,可从GraphQL后端获取数据。考虑用户数,发布的帖子,您的帖子之类的东西。

Vue2应用程序的HTML,CSS,JS等位于CDN上,并且加载速度非常快。我自己的GraphQL服务器位于一个位置,如果您离服务器很远,则加载速度可能很慢。我想增加网站的加载时间。

如何为我的GraphQL层形成一种CDN,该CDN可以将结果缓存在不同的位置,从而使常见的请求既快速又快速。对于如何开始执行此操作,我有一个大概的想法,但我仍然觉得我需要现有的服务/框架以进行指导或直接使用。

我听说过GraphCool和Hasura,我在寻找这些东西吗?

1 个答案:

答案 0 :(得分:1)

您可以选择以下几种选择:

  • 将AWS与基于位置的路由和多区域EC2实例一起使用。为了获得最可靠和最快的服务,您应该在以下位置拥有一个实例:北加利福尼亚(美国),北弗吉尼亚(美国),圣保罗(巴西),巴黎(法国),孟买(印度),香港(中国) ),东京(日本),新加坡,悉尼(澳大利亚)。您可以在所有这些区域中使用free ec2 instance,并在开始使用时每年几乎不用支付任何费用,并根据需要进行扩展。我推荐t3 micro,它是绝对便宜的解决方案之一。一年的费用约为840美元。

  • 移至Heroku,这基本上使您可以执行与上文在AWS中概述的完全相同的事情,而总体控制较少。

  • 使用Vuex通过将localStorage与持久存储插件(如vuex-persistedstate)的功能结合起来,将结果存储在用户计算机上的Vuex中。将其与server sent events结合使用,可以避免在您发出的初始请求之外再请求更新信息。 注意:这不会解决最初的缓慢加载问题。

  • 一起忽略Vuex,仅将结果存储在客户端的localStorage中,并在需要时获取它。 注意:这不会解决最初的缓慢加载问题。

您为什么还没有提到Hasura?!

Hasura本身并不是一个可以独立运行的云服务。相反,Hasura允许您将GraphQL Engine放到预先存在的PostgreSQL数据库的顶部。