官方插件:路线图的改变
仅仅六个月前,我们宣布采用三个主要由微软开发的插件 - 模板、数据链接和全球化 - 作为官方插件,以 jQuery 项目的标准进行开发并获得其支持。今天,我们想借此机会分享我们在期间的学习成果,并宣布对这些插件以及其他 jQuery “官方插件”的路线改变。
一直以来,并没有专门的 jQuery 团队来支持官方插件。在采用微软的贡献之前,jQuery 项目支持的插件 - 颜色、缓动、bgiframe、鼠标滚轮、元数据和 Cookie - 都是非常简单的、有效的插件,用于实现特定的功利目的。它们几乎不需要维护,从 jQuery 核心版本到版本,都稳定地工作,没有引起任何麻烦。近几个月,我们注意到与这三个新插件相关的疑问有所增加,我们意识到存在着脱节。尽管微软继续开发插件的测试版,但原本计划与微软合作并接管他们工作的 jQuery 子团队始终没有成立。
由于插件测试版的发布以及发布文章中作出的承诺,需求一直在增长,我们也感受到了困惑和疑问,人们惊呼:“我以为模板会在 1.5 版本中出现!” 鉴于你们的担忧和我们的担忧,我们决定彻底取消官方插件的概念。这是一个语义和象征意义的改变,但这会带来实质性的影响。
许多最初受支持的 jQuery 插件(颜色、缓动和鼠标滚轮)将继续由 jQuery 核心开发团队支持和维护。元数据插件将被弃用,转而使用 jQuery 1.4.3 及更高版本提供的类似功能。 Cookie 插件 将继续由 Klaus Hartl 维护。
jQuery UI 项目将接管它当前或未来依赖的插件:模板、全球化和 bgiframe。jQuery UI 团队计划重新开始模板和全球化的开发工作,从 UI 插件的常规流程开始:协同开发规范。虽然有些人可能认为这是一个倒退,因为现有的 jquery-tmpl 插件已经取得了进展,但这实际上是一个与社区(包括微软)合作的机会,共同开发一种既有效又灵活的实现方式。微软一直在开发的“官方插件”一直处于测试阶段,随时可能发生变化,并且计划在 Beta 2 版本中进行重大修订,但我们认识到(并感谢)你们中已经开始尝试并将其应用于应用程序的人。UI 团队仍然处于 模板 和全球化插件的早期规划阶段,我们邀请您访问 规划维基 并分享您对开发的意见。
微软将继续独立开发和支持数据链接插件,并将接管现有插件文档的托管工作。 然而,在短期内,我们将保留这些插件的文档在 api.jquery.com 上,以便为任何需要参考的人提供参考。有关微软对数据链接的计划的更多信息,请阅读 他们的官方插件更新。我们感谢微软对 jQuery 的持续贡献,为许多项目提供开发者时间和财务支持,包括 jQuery UI Grid 和 jQuery 大会。
我们意识到,其中一些细节可能显得变化无常或仅仅是组织上的变化,但我们知道,重要的是在这些变化发生时告知社区,以便您能够尽快为自己的应用程序做出最佳决策。我们希望您理解我们不得不做出这些转变的原因,并鼓励您参与进来,帮助我们推进这些重要的项目!
附录:为什么模板没有在 1.5 版本中出现?
虽然我们最初宣布 jquery-tmpl 插件将成为 jQuery 核心 1.5 版本的一部分,但该插件当时(以及现在)仍然处于 Beta 1 阶段。因此,当去年 12 月真正开始评估 1.5 版本的新功能时,它并没有被认为已经准备好包含进来。鉴于我们上面解释的内容,我们希望已经清楚地表明,我们近期内不打算将模板直接包含在核心版本中。jQuery UI 模板插件将是一个独立的插件,不依赖于 jQuery UI 的任何其他部分,并将成为该项目“官方”支持的唯一模板解决方案,不过 jQuery 当然会继续与任何可以输出良好、老式的 HTML 字符串的 JavaScript 模板引擎一起工作。
我希望我能代表社区表达我的感受,我认为这是个好消息,也是个令人沮丧的消息。在过去几周玩弄 jquery-tmpl 库之后,我不得不放弃它,因为它的 API 感觉还不太对。所以,它重新回到草稿阶段,这是个好消息。另外,它迁移到 jQuery UI 团队在架构和组织方面也说得通。我期待着 jQuery 模板引擎,我觉得没有它我很难受,但好东西总会留给那些等待的人。
我只希望模板库不会像许多其他被 jQuery UI 吸收的库那样发展。
我 *仅仅* 希望模板库是一个简洁干净的库。我不想要任何其他的 UI 组件,也不想为了使用模板而不得不包含 4 个其他文件。
“我们意识到,其中一些细节可能显得变化无常或仅仅是组织上的变化”
不,这看起来很混乱,没有方向。
我觉得过六个月,JQuery UI 会发布另一篇文章,解释这些项目的更多“组织上的变化”。
与核心版本快速迭代相比,它们感觉太迟缓了。我知道这是橘子与苹果之间的比较,但为什么还是这么复杂呢?
感谢更新。
关于模板,非常重要的一点是将原始模板处理与 jQuery/DOM 解耦。能够在非 DOM 运行时(例如服务器端 JavaScript)使用相同的模板引擎会很棒。因此,将字符串作为模板和 JSON DOM 作为模型传递以获取结果的模型应该与“容器”无关,当然,像 $(“tmpl-myTemplate01″).tmpl({name:”Jeremy”}) 这样的方便的 jQuery 包装器也是受欢迎的。
为了明确起见,现有的 jquery-tmpl 插件将会怎样?它会演变成 jQuery UI 模板插件,还是两者都是独立的插件?
jQuery UI 模板插件将是一个独立的插件,不依赖于 jQuery UI 的任何其他部分,并将成为该项目“官方”支持的唯一模板解决方案,不过 jQuery 当然会继续与任何可以输出良好、老式的 HTML 字符串的 JavaScript 模板引擎一起工作。
我投票支持将全球化作为独立的插件,不依赖于 JQuery UI(类似于模板插件的提案)。
真可惜,但我希望新的模板插件会更好。目前我将继续使用现有的插件,它对我的工作非常有效。
Globalization 插件现在是 100% 纯 JavaScript,不依赖 jQuery。它已被重命名为 Globalize,并在 http://wiki.jqueryui.com/Globalize 上有一个维基页面,代码库位于 http://github.com/jquery/globalize/。它也列在 npm 中:http://search.npmjs.org/#/globalize
模板插件的重新设计正在 jQuery UI 维基上进行,地址是 http://wiki.jqueryui.com/Template 和 wiki.jqueryui.com/Template-Comparison。到目前为止,最新的(也是最有用的)部分是模板维基页面上的第 3 节和模板比较维基页面上的表格中“核心”功能部分下的 5 行。与 Globalize 一样,新的模板插件将不依赖 jQuery(因此它可以在服务器端工作),但我们将围绕它开发一个 jQuery 插件包装器。虽然 jQuery UI 团队只会在 jQuery UI 小部件中完全支持使用 jQuery UI 模板插件,但我们预计用户能够替换他们选择的模板引擎,只要它能够支持相同的核心 API,至少要有一个函数,该函数接受模板字符串和数据对象,然后返回字符串结果。
有关此更改背后的历史以及自该公告发布以来的六个月中发生的事情的更多详细信息,请访问 http://www.borismoore.com/2011/10/jquery-templates-and-jsviews-roadmap.html
太令人沮丧了……我想是我自己的错,因为我在项目中加入了 beta 1。希望你们很快就能拿出点东西。JavaScript 最糟糕的一点是各种插件带来的依赖关系的脆弱性。
这里值得一提的是,还有几个其他选项可用于 jQuery 的客户端模板引擎。
JsRender 和 JsViews:由 Boris Moore 创建,他也参与了 jQuery tmpl 的开发,目前正在接近 beta 版本(截至 2012 年 3 月 6 日)。查看 http://www.borismoore.com/2012/03/approaching-beta-whats-changing-in_06.html
JSON2HTML:由我自己创建的模板插件,它使用了一种更简化的方法(在我看来),使用 json 作为模板,而不是 html 标记。值得尝试,因为它还包括 jQuery 事件的集成
http://www.json2html.com
还有许多其他方法可以在客户端执行类似模板的功能;一个流行的例子是“Plates”(以前称为 Weld)。https://github.com/flatiron/plates
无论如何,现在出现了很多选择,看看哪些能留下来将会很有趣。
我已经读了这篇文章三遍了,但仍然不明白。你能重写一下,不要每三个单词就说“Microsoft”,并且句子结构不要像企业沟通部门起草的那样吗?提前感谢。
所以你们用一个很棒的模板库换了一个 0.0 版的无效版本。是因为它是微软写的吗?因为我没有从这些牵强的借口中看到令人信服的论据,这些论据无非是:“这是一个我们无法控制的复杂插件,不如用我们这个无效的 alpha 版本来代替?”