我从事单页 Web 应用程序 (SPA) 已经有一段时间了。前端使用 BackboneJS/Marionette,后端是 Java Spring :(
。但是我发现可能很慢的是在应用程序启动时,向不同的 API 端点发出了许多请求,以填充应用程序各个部分的数据。我觉得这很慢?虽然它们是 AJAX 请求,因此是异步完成的?最佳做法是什么?起初我在想我以某种方式将所有内容组合成一个巨大的请求,但不确定这是否是一个好主意。代码示例也很好。
问问题
268 次
2 回答
1
由于您知道页面加载时应该有什么,因此所有这些数据都应该与您的默认 html 以及用它初始化的对象一起提供。我使用 AMD,所以我会这样做,
<script data-main="app" src="/lib/require.js"></script>
<script>
define('load', function(){return {
mymodel : <c:out value="${mymodel}" default="{}" />,
...
};});
</script>
应用程序.js:
require([ 'MyModel', 'load'], function(MyModel, load) {
var myModel = new MyModel(load.mymodel);
...
})
于 2013-07-02T15:31:54.257 回答
0
一个巨大的要求不是一个坏主意。无论如何,出于同步目的,您可能需要此功能。
将任何动态内容放入 HTML 会阻止您缓存前端代码。您将无法静态部署前端 - 例如打包到移动应用程序中。它也可能会减慢初始渲染时间,尽管由于需要两个请求而不是一个请求,因此应用程序整体加载时间会稍长一些。
于 2014-05-05T01:43:37.110 回答