Vue.js 使用客户端渲染预取数据
Vue.js prefetch data with client side rendering
我知道vue中的ssr(服务端渲染),比如nuxt。它在 serverPrefetch()
函数中获取数据并在服务器端呈现内容,然后请求将数据返回给用户并且他开始下载 app.js
.
但是我们能否在用户请求后立即开始从后端加载数据,而不是等待vue脚本下载,并且在所有数据加载之前不停止请求。所以用户正在下载 app.js
,而我们的服务器正在处理 sql 请求并形成响应。
只要涉及 Nuxt
- 您可以在 following article 中找到关于 SSR
(和客户端)选项的相当不错的总结。剧透警报 - 我认为 SSR 仍然是您想要实现的目标的最佳选择。在 Nuxt
世界中 - NuxtServerInit
和 AsyncData
是这份工作的合适人选。
假设你决定远离 SSR - 你有什么选择?
加载一些超轻量级的 js 并在 Vue 应用程序之前 运行 获取数据并以某种方式与应用程序共享(例如 - 将其保存到本地存储)。它真的会提供速度优势吗?我真的很怀疑,尤其是考虑到 Vue 应用程序在客户端浏览器中缓存时加载速度有多快。
将后端数据转储到服务器响应本身。我的意思是,您可以预取所有繁重的内容并将其作为 json 编码对象粘贴到您的页面中。这肯定会为初始请求节省一些时间,但是——那个数据块有多大?岂不是让最初的负担过重,破坏了最初的目的?这些是您应该根据您的特定用例回答的问题。
我知道vue中的ssr(服务端渲染),比如nuxt。它在 serverPrefetch()
函数中获取数据并在服务器端呈现内容,然后请求将数据返回给用户并且他开始下载 app.js
.
但是我们能否在用户请求后立即开始从后端加载数据,而不是等待vue脚本下载,并且在所有数据加载之前不停止请求。所以用户正在下载 app.js
,而我们的服务器正在处理 sql 请求并形成响应。
只要涉及 Nuxt
- 您可以在 following article 中找到关于 SSR
(和客户端)选项的相当不错的总结。剧透警报 - 我认为 SSR 仍然是您想要实现的目标的最佳选择。在 Nuxt
世界中 - NuxtServerInit
和 AsyncData
是这份工作的合适人选。
假设你决定远离 SSR - 你有什么选择?
加载一些超轻量级的 js 并在 Vue 应用程序之前 运行 获取数据并以某种方式与应用程序共享(例如 - 将其保存到本地存储)。它真的会提供速度优势吗?我真的很怀疑,尤其是考虑到 Vue 应用程序在客户端浏览器中缓存时加载速度有多快。
将后端数据转储到服务器响应本身。我的意思是,您可以预取所有繁重的内容并将其作为 json 编码对象粘贴到您的页面中。这肯定会为初始请求节省一些时间,但是——那个数据块有多大?岂不是让最初的负担过重,破坏了最初的目的?这些是您应该根据您的特定用例回答的问题。