Javascript与带有SignalR和KnockoutJS的大型项目

Javascript与带有SignalR和KnockoutJS的大型项目,javascript,knockout.js,requirejs,Javascript,Knockout.js,Requirejs,我很想知道其他团队是如何在他们的项目中使用Javascript的。目前我有一个MVC.Net应用程序-使用实体框架的面向服务的体系结构。。废话废话-不是我想问的问题,但知道有用。对于客户端,我使用了signar和knockout。Knockout需要您绑定一个视图模型,然后Signaler参与进来,它会变得有趣 为了将其拆分(并获取所有依赖项Knockout、jQuery等),我决定使用RequireJS并将其结构化如下: |- \Js |- app.js (This actually c

我很想知道其他团队是如何在他们的项目中使用Javascript的。目前我有一个MVC.Net应用程序-使用实体框架的面向服务的体系结构。。废话废话-不是我想问的问题,但知道有用。对于客户端,我使用了signar和knockout。Knockout需要您绑定一个视图模型,然后Signaler参与进来,它会变得有趣

为了将其拆分(并获取所有依赖项Knockout、jQuery等),我决定使用RequireJS并将其结构化如下:

|- \Js
   |- app.js (This actually creates a connection with signalr)
   |- config.js (requirejs.config - lists all the js libraries and then lists their dependancies)
   | - \App
       |- SomeFunction.js (Initialises the viewmodel and binds to the view)
       |- \ViewModel
          |- SomeViewModel.js (Consists of the view model)
          |- SomeOtherViewModel.ks (You get the idea...)
(我没有列出这些库,但它们列在Js文件夹中的供应商文件夹中)

我之所以把这些文件分割得如此之多,是因为1000多行javascript确实很难阅读,而且它使我的团队更容易处理项目的不同元素。但这确实有一个缺点——当我查看每个请求的流量时,它的1.5mb听起来并不坏,但随着javascript文件的增长,它正在成为一个越来越大的问题(特别是当我承诺应用程序会更快时!)

我曾尝试使用供应商库的缩小版本,但这并没有产生多大影响。有没有人遇到过这个问题,你是如何克服的?我不确定如何精简javascript(不手动执行此操作)并仍然使用requirejs来管理依赖项


谢谢

您可以使用RequireJS'
r.js
优化您的代码。优化器知道如何优化RequireJS模块。可以将其配置为使供应商的资料保持原样。查看
r.js
的文档,尝试一下,如果遇到具体问题,可以问更多问题。对于如何使用它,没有一刀切的答案


通过使用优化器,您可以显著减少网络请求的数量和传输的数据的大小。在我正在开发的一个应用程序中,在使用优化器之前,我在远程服务器场上运行Selenium测试时出现了测试超时,这一点非常重要。优化后超时消失。

我已经考虑过这一点,但我不确定如何将其包括在构建过程中。你把javascript构建过程和项目构建过程分开了吗?我不知道你的意思。您的问题是否与.Net项目的结构和构建方式密切相关?我使用
make
来构建我的东西,我只在Linux中构建了它。从第一天开始,我就有了一个名为
build/standalone
的目标,它将我的代码与外部代码组合成一棵JS代码树。出于优化目的,我添加了一个
build/standalone optimized
目标,在
build/standalone
中的文件上运行
r.js
,以创建一个优化版本。我认为我的结构是问题的一部分,我可能需要查看它的结构,然后使用r.js缩小项目。。。谢谢你在这方面的意见。