在等待数据库时将页面的开始 HTML 发送到服务器
Send start of page's HTML to the server whilst waiting for database
如果我取出我的数据库访问代码,我的网页将在几毫秒内得到处理。添加数据库访问代码后,请求将达到 400 毫秒以上。
是否可以在等待数据库到 return 的同时将页面顶部发送到浏览器?
只是为了证明这是可能的...
您应该立即 return 您的视图并使用一些触发数据库查询的异步 api
调用(使用 ajax
调用)填充您的数据。当您从数据库中获得结果时,您可以发送它们。或者,如果这样更有意义,您可以拆分查询和 return 数据块。
Marko 完全符合您的要求:
它提供了 3 个支持渐进式渲染的关键特性:
- 流式模板渲染 - 因此您的 html 会提前发送并且经常清除缓冲区
- html 片段的异步渲染 - Marko 将管理等待、缓冲和最终渲染
- 无序呈现 - 一旦 api 调用或数据库查询可用,Marko 将选择性地发送模板数据,然后它将在客户端重新排序 html
我刚刚在 Marko 上做了一个截屏视频,您可能会觉得有用:
http://knowthen.com/episode-8-serving-content-in-koajs-with-marko/
如果我取出我的数据库访问代码,我的网页将在几毫秒内得到处理。添加数据库访问代码后,请求将达到 400 毫秒以上。
是否可以在等待数据库到 return 的同时将页面顶部发送到浏览器?
只是为了证明这是可能的...
您应该立即 return 您的视图并使用一些触发数据库查询的异步 api
调用(使用 ajax
调用)填充您的数据。当您从数据库中获得结果时,您可以发送它们。或者,如果这样更有意义,您可以拆分查询和 return 数据块。
Marko 完全符合您的要求:
它提供了 3 个支持渐进式渲染的关键特性:
- 流式模板渲染 - 因此您的 html 会提前发送并且经常清除缓冲区
- html 片段的异步渲染 - Marko 将管理等待、缓冲和最终渲染
- 无序呈现 - 一旦 api 调用或数据库查询可用,Marko 将选择性地发送模板数据,然后它将在客户端重新排序 html
我刚刚在 Marko 上做了一个截屏视频,您可能会觉得有用:
http://knowthen.com/episode-8-serving-content-in-koajs-with-marko/