JavaScript 框架,例如 Prototype、jQuery、YUI、MooTools、Dojo 等。所有这些似乎都以客户端开发人员为目标,重点是使常见的用户交互模式能够以更少的代码更有效地实现。
随着服务器端 JavaScript 的出现,这些框架是否打算合并 CommonJS 标准,以便能够将它们的库函数重用于服务器端 JavaScript,或者它们是否会允许 Node 和 Narwhal 等替代框架来处理服务器端用例?
(我意识到这个问题非常接近于可以讨论但不能回答的问题,但我认为 Stack Overflow 社区实际上可以通过具体引用来回答这个问题。)
最佳答案
这是我的看法(我是一名 YUI 开发人员):
您的问题似乎有两个 Angular 。
一个是关于模块打包和重用格式(CommonJS),另一个是关于客户端 JS 库的一般概念及其对服务器端开发的适用性。
我不是真正回答包装 Angular 合适人选,除了说 YUI 3 从第一天开始就固有地使用正式的模块系统来封装和交付代码,并且它已经成为其设计的组成部分。提供适配器或构建步骤以将这些模块交付/翻译为 CommonJS 是我们一直在讨论的事情。 YUI 社区中参与该领域的其他人可能有更多有值(value)的信息可以添加到这里。
在第二个 Angular ,我可以告诉你,服务器是 YUI 的一流目标环境。它在服务器上和在客户端上一样适用。当然,有一组模块只在一个环境或另一个环境中有意义,但是库的很大一部分可以在栅栏的两侧使用,并且有意识地构建它来做到这一点。
例如,YUI 中的大部分模块提供了基础设施和实用程序,这些基础设施和实用程序同样适用于服务器上和客户端上的应用程序开发(自定义事件、属性、基础、Intl、Handlebars、IO、YQL、DataType 、DataSchema、JSON 等...)。
这确实是从一开始的设计目标 - 它是一个网络(因为没有更好的术语 - 我指的是 JS/HTML/CSS 技术堆栈)应用程序开发库,而不仅仅是 DOM 抽象库,或者只是一个小部件库。
Dav Glass 有一篇博文,其中包含一些关于该主题的精彩内容:
http://www.yuiblog.com/blog/2011/11/07/rocking-yui-on-node-js-and-mobile/
您还可以查看 3.5.0 PR:
关于javascript - 现有的 JavaScript 框架会合并 CommonJS 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1999974/
我有一个这样的哈希数组:[{:foo=>2,:date=>Sat,01Sep2014},{:foo2=>2,:date=>Sat,02Sep2014},{:foo3=>3,:date=>Sat,01Sep2014},{:foo4=>4,:date=>Sat,03Sep2014},{:foo5=>5,:date=>Sat,02Sep2014}]如果:date相同,我想合并哈希值。我对上面数组的期望是:[{:foo=>2,:foo3=>3,:date=>Sat,01Sep2014},{:foo2=>2,:foo5=>5:date=>Sat,02Sep2014},{:foo4=>4,:dat
文章目录git常用命令(简介,详细参数往下看)Git提交代码步骤gitpullgitstatusgitaddgitcommitgitpushgit代码冲突合并问题方法一:放弃本地代码方法二:合并代码常用命令以及详细参数gitadd将文件添加到仓库:gitdiff比较文件异同gitlog查看历史记录gitreset代码回滚版本库相关操作远程仓库相关操作分支相关操作创建分支查看分支:gitbranch合并分支:gitmerge删除分支:gitbranch-ddev查看分支合并图:gitlog–graph–pretty=oneline–abbrev-commit撤消某次提交git用户名密码相关配置g
Transformers开始在视频识别领域的“猪突猛进”,各种改进和魔改层出不穷。由此作者将开启VideoTransformer系列的讲解,本篇主要介绍了FBAI团队的TimeSformer,这也是第一篇使用纯Transformer结构在视频识别上的文章。如果觉得有用,就请点赞、收藏、关注!paper:https://arxiv.org/abs/2102.05095code(offical):https://github.com/facebookresearch/TimeSformeraccept:ICML2021author:FacebookAI一、前言Transformers(VIT)在图
有什么区别:@attr[:field]=new_value和@attr.merge(:field=>new_value) 最佳答案 如果您使用的是merge!而不是merge,则没有区别。唯一的区别是您可以在合并参数中使用多个字段(意思是:另一个散列)。例子:h1={"a"=>100,"b"=>200}h2={"b"=>254,"c"=>300}h3=h1.merge(h2)putsh1#=>{"a"=>100,"b"=>200}putsh3#=>{"a"=>100,"b"=>254,"c"=>300}h1.merge!(h2)pu
我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的
我正在创建一个新的Rails3.1应用程序。我希望这个新应用程序重用现有数据库(由以前的Rails2应用程序创建)。我创建了新的应用程序定义模型,它重用了数据库中的一些现有数据。在开发和测试阶段,一切正常,因为它在干净的表数据库上运行,但是当尝试部署到生产环境时,我收到如下消息:PGError:ERROR:column"email"ofrelation"users"alreadyexists***[err::localhost]:ALTERTABLE"users"ADDCOLUMN"email"charactervarying(255)DEFAULT''NOTNULL但是我在迁移中有这
我遇到了RVM的问题,所以我卸载并重新安装了它。事实是我实际上尝试过rbenv,但这对我来说没有用,所以我试图让rvm重新启动并运行-而不必安装重复版本的Ruby。我至少安装了1个现有版本的Ruby:ruby--versionruby1.8.7(2011-12-28patchlevel357)[universal-darwin11.0]但是当我执行rvmlist时,我得到一个空白列表:bash-3.2$rvmlistrvmrubies#Defaultrubynotset.Try'rvmaliascreatedefault'.#=>-current#=*-current&&default
我想开始使用“Sinatra”框架进行编码,但我找不到该框架的“MVC”模式。是“MVC-Sinatra”模式或框架吗? 最佳答案 您可能想查看Padrino这是一个围绕Sinatra构建的框架,可为您的项目提供更“类似Rails”的感觉,但没有那么多隐藏的魔法。这是使用Sinatra可以做什么的一个很好的例子。虽然如果您需要开始使用这很好,但我个人建议您将它用作学习工具,以对您来说最有意义的方式使用Sinatra构建您自己的应用程序。写一些测试/期望,写一些代码,通过测试-重复:)至于ORM,你还应该结帐Sequel其中(imho
之前有人问过这个问题,我发现了以下clip关于如何一次设置一个类对象的所有属性,但由于批量分配保护,这在Rails中是不可能的。(例如,您不能Object.attributes={})有没有一种很好的方法可以将一个类的属性合并到另一个类中?object1.attributes=object2.attributes.inject({}){|h,(k,v)|h[k]=vifObjectModel.column_names.include?(k);h}谢谢。 最佳答案 利用assign_attributes使用:without_prote
在我的Rails项目中,我有三个模型:classRecipe:recipe_categorizationsaccepts_nested_attributes_for:recipe_categories,allow_destroy::trueendclassCategory:recipe_categorizationsendclassRecipeCategorization通过这个简单的has_many:through设置,我怎样才能像这样获取给定的食谱:@recipe=Recipe.first并根据现有类别向此食谱添加类别,并在相应类别上对其进行更新。所以:@category=#Exi