自从我开始使用asp.net mvc开发以来,我的经验几乎是80%的jQuery,只有20%的C#。
现在我开始使用Knockout.js让自己更好地控制页面上的视图。
我现在面临的问题是:我应该向浏览器提供“sceleton标记页面”并通过ajax调用加载所有数据,这反过来填充js viewmodel对象,因此填充视图,或者我应该最初填充数据通过局部视图,并使用js页面数据管理进行后续的客户体验?
现在我正在做后者,但这要求我写两个数据检索/显示逻辑 - 一个用js,一个用mvc razor视图。
我不打算支持禁用js的浏览器,所以也许我应该通过js knockout视图模型初始化来做所有事情?
答案 0 :(得分:1)
还有许多其他变量。
另一方面,如果这是一个具有良好网络,低数量请求和良好客户端计算机的内部部门级业务应用程序,那么您肯定可以使用最小的初始页面并使用AJAX填充所有内容。此外,正如Arbiter所指出的,JSON的大小可能比HTML小,所以如果你有大量的数据,那么你可以通过JSON保存在网络上。
还有一个中间的第三种方式。您可以生成JSON数据并将其直接嵌入网页(如<script>CallMyJSGenerateMethod({generatedJSON: "goes here"})</script>
)。这样,您只有一个(JavaScript)程序用于生成HTML,少量请求(具有更低的数据量)和缓存网页的能力。不过,你必须有一个好客户,所以第二点仍然有效。
答案 1 :(得分:1)
这是一个更多的意见,但在我的估计中,它是关于构建Web应用程序的最常见问题:我是在服务器上使用HTML / MVC构建页面还是使用所有JS?这里没有明确的正确答案适合所有情况。两者都是很好的选择。德米特里的观点也是有效的。
需要考虑的其他事项是您是否需要在服务器上坚持使用ASP.NET,或者是否使用其他服务器技术(PHP?)。你的开发团队有哪些技能?您正在创建的页面在客户端上会发生很大变化,还是相对静态?
我个人倾向于客户端空间而不是服务器端生成,但它主要是偏好。