架构的一个单页的JavaScript网应用程序?
-
27-09-2019 - |
题
应该怎样一个复杂的单页JS网络应用结构化的客户机-身边?具体地说我很好奇怎么干净结构的应用程序的模型对象,用户界面部件的任何控制,并对象处理服务器的持久性。
软似乎是一个合适的。但是,与用户界面组件嵌套在不同深度(每个都有自己的方式行/反应模型数据,并且每发生的事件,这是他们自己的可能或可能不直接处理),这似乎并不喜欢视可以完全适用。(但请纠正我,如果不是这种情况。)
--
(这个问题 造成两个建议使用的ajax,这显然是需要的任何其他比最平凡的一页。)
解决方案
视的建筑 PureMVC/JS 是最优雅的国际海事组织。我学到了很多。我还发现 可扩展JavaScript应用程序结构 通过尼古拉斯Zakas有助于研究的客户的侧建筑的选择。
其他两个提示
- 我已经找到了查看,专注和投入管理领域需要特别关注在单个网页应用程序
- 我也发现它有助于抽象离JS库,让门开放的改变心态上使用的,或者混合和匹配需要的出现。
其他提示
尼古拉斯Zakas的介绍作为共享的院长是一个非常好的地方开始。我也努力回答相同问题一段时间。这样做之后几个大规模Javascript产品,以为分享经验和教训,作为一个参考架构的情况下有人需要它。看看:
它涉及共同Javascript发展问题,例如:
- 方案结构
- 创建复杂的层次结构模块
- 自给自足用户界面组件
- 基于事件的间的通信模块
- 路由、历史、书签
- 单元的测试
- 本地化
- 生成文档
等等。
我的建立应用程序:
- 过测试框架,单个网页应用程序,每一个组成部分的定义在一个单独的JS文件,载于需求
- 每一个组成部分联系其自己的专用网络服务(有时超过一个),获取数据过测试进入储存或特殊用途数据结构
- 呈现采用的标准过测试部件,这样我就可以结合商店的网格,载的形式自的记录,...
只需选择一个javascript框架,并按照其最佳做法。我最喜欢的是过测试和应用程序,但情况因人而异。
不滚你自己的解决方案。所需要的努力重复的现代javascript框架不是太大。它总是更快地适应现有的东西,而不是建立这一切从头开始。
Question - What makes an application complex ?
回答-所使用的单词'复杂'在这个问题本身。因此,一个共同的倾向将要寻找一个复杂的解决方案从一开始。
Question - What does the word complex means ?
回答-什么都是未知的或部分的理解。例如:该理论的重甚至今天是复杂到我的但不是艾萨克*牛顿爵士的谁发现了它在1655.
Question - What tools can I use to deal with complexity ?
答案-理解和简单性。
Question - But I understand my application . Its still complex ?
答案-三思而后行,因为理解和复杂性不同时存在。如果你理解了一个巨大的庞大的应用程序,我肯定你会同意,这不过是一个融合的小型和简单的单位。
Question - Why all of the above philosophical discussion for a question on
Single Page Application (SAP)?
答案-因为
->SPA是不是某种核技术的新发明我们需要重新发明轮子的东西很多,我们是在做应用程序开发。
->它的一个概念驱动的需要更好的性能、可伸缩性和易维护性网络应用程序。
->它的一个相当新确定的设计图案,因此了解的水作为一种设计图案去漫长的道路,作出知情的决定有关建筑的水疗中心。
->的根源水平没有SPA是复杂的,因为后谅解的需要的应用程序和水疗中心的模式,你会发现你还是创建一个应用程序,几乎同样的方式,你以前做的一些修改和重新安排在发展的方法。
Question - What about the use of Frameworks ?
答案-框架样板码/溶液对于某些常识和通用的模式,因此他们可以脱掉的x%(变量的基础上应用程序)载应用程序开发,但后来没有很多应该可以预期它们专门用于重和日益增长的应用。它总是一个很好的例子是在完全控制你的程序结构和流程,但最重要的是,它的代码。应该没有灰色或黑色区域中的应用的代码。
Question - Can you suggest one of the many approaches to SPA architecture ?
答案-想想你自己的框架的基础本质上应用程序。分类的应用程序组成。寻找一个现有的框架就是靠近你的派生框架,如果你找到它,然后使用它,如果你找不到它然后我建议继续你自己的。创建的框架是一个相当前期努力,但产生更好的结果,在长期运行。一些基本组件在我SPA框架将是:
数据来源:模型/集合的模型
标记了提出数据:模板
互动与应用:事件
国家捕获和导航:路由
公用事业、部件和插件:图书馆
让我知道如果这有助于在任何方式和良好的运用你的水疗中心的建筑!!
做的最好的事情是看其他框架的示例的用途:
的 TodoMVC 强> 陈列柜许多许多SPA框架。
可以使用JavaScript MVC框架 http://javascriptmvc.com/
在Web应用程序,我目前正在使用jQuery和我不会推荐它的任何大单页面的Web应用程序。大多数框架即道场,雅虎,谷歌等人在他们的库使用命名空间但JQuery的不和这是一个缺点显著
如果您的网站是打算以小然后JQuery的将是确定的,但如果你打算建立一个大型的网站,然后我会建议在看所有的JavaScript框架可用,并决定哪一个最符合您的需求。
我建议你使用MVC模式到您的JavaScript / HTML,可能最让JavaScript的对象模型中可以做的JSON,你实际上是从服务器通过AJAX返回和javascirpt使用JSON来呈现HTML
我会建议读的书阿贾克斯行动,因为它涵盖了大部分的你需要知道的东西。
我使用 Samm.js 在大获成功的几个一页应用
我会去与 jQuery的MVC
查核 http://bennadel.com/projects/cormvc-jquery-framework热媒本是相当尖锐的,如果你周围挖在他的博客,他有大约CorMVC是如何放在一起,为什么一些不错的职位。
替代:看一看到的ItsNat
想想JavaScript,但代码在Java中同样具有相同的DOM API服务器,在服务器是比较容易的方式,就可以实现自定义客户端应用程序/桥梁,因为UI和数据都在一起。
的 NikaFramework 强> 允许创建单页的应用程序。也可以让你写的 HTML 的 CSS 的( SASS 的)的的JavaScript 的成单独的文件,并将它们打包成只有一个到底输出文件中。