单页应用程序只用于整个Web应用程序的一个页面吗?

时间:2013-11-06 04:24:14

标签: javascript asp.net knockout.js single-page-application

我正在学习单页面应用,并在阅读document itself

之后

我想知道单页应用程序模式只是在使用外部模板的淘汰赛的Web应用程序中的一个页面(例如:html页面)?

我的意思是(我正在使用MVC):

-mywebsite
 + some js files
 + some css files
 + index.html
 + controllers
 + models

我希望有人可以向我解释这个模式的更多信息。谢谢。

3 个答案:

答案 0 :(得分:4)

是的,您通常只有一个HTML页面充当" shell"有信息的视图加载到" shell"。 JavaScript文件充当调用以获取此数据,解析数据并将模板应用于数据的媒介。模型,控制器等允许JavaScript结构的模块方法,而不是spaghetti JavaScript代码。 CSS与往常一样有用。

在我看来,这是大约10年前纯AJAX应用程序的意图,其中单个页面将加载,然后只有对服务器或服务的请求才会加载数据,只执行部分页面更新而不是回发到服务器渲染(或重新渲染)页面(就像WebForms那样)。

更新:

Single Page Application: KnockoutJS template包含了KnockoutJS,但Know a library other than Knockout?中还详细介绍了其他选项,其中列出了网格中每个模板的功能,以便于查看。

答案 1 :(得分:3)

实际上,您可以将应用程序分成html文件集和java脚本文件。单页应用程序应该具有的是在不刷新浏览器的情况下完成所有应用程序的工作。您可以在需要时延迟加载视图(html)和JavaScript。我想你可以从模板或样本开始,以了解它。 您可以从John Papa

获取更多详细信息

以下是一些支持SPA的frmameworks

http://durandaljs.com/
http://www.asp.net/single-page-application/overview/introduction/knockoutjs-template

答案 2 :(得分:2)

单个页面应用程序通常以单个页面的形式提供shell,该shell调用ajax调用以提供功能。关键的想法是shell不会刷新整个页面,而是通过针对shell的子部分的ajax调用刷新内容。 这种模式的一个好处是用户无需处理刷新整个页面和丢失客户端状态的破坏性用户体验。

Knockout肯定可以用作你设计的一部分,但它不是模式的直接部分。