因此,我正在研究使用后端Web服务发送JSON有效内容的单个应用程序,然后通过专有的Javascript MVC框架在客户端上呈现JSON有效内容。加快单页应用程序中的呈现(SPA)
在我们特定的应用程序中,我们有一个多页面表单向导。所有的页面都是可定制的,所以我们必须发送所有的布局信息以及数据来填充它。模板存储在html中,然后在客户端,它们从DOM中删除并缓存以供重用。
这里和我通常看到的不同之处在于,整个表单的所有数据都是在单个Ajax调用中加载的,然后在应用程序响应之前呈现所有内容。这可能需要(取决于设置的大小)5,10,20秒。
一旦表单被加载,一切都闪电般快速,并出色地工作。你可以完成整个事情而无需等待一次。然后,当您完成并提交时,ajax呼叫也可能需要10-20秒才会返回并显示确认。这是因为我们并没有真正向服务器发送任何内容,所以我们最终将其全部保存。
因此,要回顾:
获得巨大的JSON有效载荷(等待)>渲染一切(等待)>用户完成表单(所有客户端)>用户提交完整的表单(等待)>确认页面
的大部分时间都是在第2步中渲染的。
我超速行驶的这件事的想法是几个:
1)分手Ajax调用。而不是获取整个表单,对每个页面都进行ajax调用,将它们全部发送出去,并开始使用回调方法呈现该页面。
2)目前所有东西都在客户端渲染,我正在考虑如何在等待数据的同时预先渲染服务器上的某些页面(在单独的线程中?)。
仅供参考,我们在ASP.NET环境中,后端的ASMX Web服务和客户端的内部框架,我们提供了jQuery。
WebWorkers不会在那种情况下帮助的DOM不是员工都可以访问(你将不得不发生变异它实际预渲染真实的东西,至于浏览器而言) 您的JSON预取的建议是不错,但它应该会有很大的性能提升。 – AlexG 2013-05-29 10:51:00