JavaScript库和模式:Yahoo! AJAX吗

这是从The SitePoint Tech Times#132重新发布的

JavaScript很难,但是可能要困难得多。 如今,选择工具实际上已成为大部分工作。

许多很多年前(可以,有五种),网站上的JavaScript代码是一个精通代码的开发人员的标志,他或她的双手还有更多时间。 通常会产生可爱的效果,例如鼠标悬停图像交换(和不太可爱的损坏的右键单击菜单)。 即使在这种技术冒险的网站上,也几乎没有听说过编写100行以上的JavaScript代码。

如今,Web应用程序成功的典型代表是由众多功能强大且相互依赖的JavaScript文件以及少量HTML和CSS组成。 使用JavaScript代码库可以轻松地超过标记和样式表,是否应该将大部分敏感的新时代Web开发人员的时间花在脚本编写上?

好吧,除非您尝试解决一个以前没有人解决过的问题,否则答案是“可能不会”。

Web开发领域中的大量精力都用于构建可重用的解决方案。 在SitePoint上,我们刚刚发送了The JavaScript Anthology ,将近600页的此类解决方案进行打印。 今天,雅虎! 越来越多的实体通过Yahoo!提供了可重复使用的JavaScript功能库。 用户界面库 。

同时,使用这些快速发展的工具可以积累的经验每天都变得越来越丰富。 虽然代码猴子不断地推动着可能性的发展,但可用性专家正在编译有关如何最好地创建人们将能够(并愿意)使用的应用程序的文档。 雅虎! 设计模式库是进入该领域的一个新的很有前途的条目。

在这篇文章中,我将介绍Yahoo!为Web开发人员提供的新产品,并回顾您应该考虑的其他一些选项。 如果您还没有选好马,那么现在将是个好时机。 JavaScript很难,但是不必在您的网站上使用它。

怎么做:JavaScript库

我是一个手工编码器。 我用自己的鲜血,汗水和眼泪精心打造了复杂系统的每个部分,对此我感到非常满意。 但是,这些天来,似乎在涉及JavaScript时我总是在重新发明轮子。

值得庆幸的是,那里有些人喜欢重新发明轮子。 或者更确切地说,他们喜欢镇上最好的轮子,这样每个人都想要检查自己的性感合金,然后为自己准备一套。

有可用的JavaScript库适合各种口味。 以下是最重要的概述,包括Yahoo!的全新产品:

道场

Dojo是JavaScript库的Rolls Royce,可为各种场合提供工具。 实际上,该库是如此之大,以至于您可能不需要在最复杂的Web应用程序中的任何方面使用它的所有方面。 因此,您可以选择下载具有所需功能的库版本,并避免访问者不得不下载构成Dojo的300KB以上的JavaScript代码。

Dojo占据了现代浏览器格局的不稳定基础,并用一组可靠的接口代替了它。 当Dojo处理浏览器兼容性问题时,您将为动画,事件处理,远程脚本(AJAX)等编写简单的代码。

通过Dojo的最强大功能,您可以构建由小部件组成的基于浏览器的用户界面,这些小部件可提供桌面应用程序的所有交互性。 您可以在Dojo提供的框架内构建自己的窗口小部件,或使用内置窗口小部件库。 Dojo甚至为拖放提供了完善的支持,而所有这些都确保了浏览器兼容性。

Dojo的缺点在于它的复杂性,以及目前尚无文档记录的事实。 毫无疑问,随着时间的推移,这种情况会有所改善,但是如果您打算今天进入Dojo,请通过示例学习很多东西。

原型

Protoype并没有提供一个以Dojo的方式为基础的全新框架, 而是增强了浏览器的现有JavaScript功能,从而使它们的使用痛苦减轻了很多。 使用原型,您可以在利用现有技能的同时,利用库提供的巧妙快捷方式。

除了$功能之类的宝贵快捷方式(它是document.getElementById的快捷方式(例如$('content') ))之外,Prototype还提供用于事件处理,数组处理,表单脚本,DOM操作和远程脚本(AJAX)的功能。

由于Prototype非常擅长减轻底层脚本编写的痛苦,因此已经建立了许多以Prototype为基础的高级库。 最为显着地:

  • script.aculo.us是糖果之王,提供易于应用的动画“电影效果”,可用于增强大多数Web应用程序。
  • Rico的目标与Dojo处于同一水平,它提供了从小部件库中构建类似于桌面的Web应用程序所需的一切。 不幸的是,它的文档甚至少于Dojo。

阿贾克斯

Zimbra Ajax工具包 (AjaxTK)的开发是Zimbra的Web界面的基础, Zimbra是一种协作服务器,允许整个公司管理电子邮件,日历和联系人,并通过浏览器或通过Microsoft Outlook等桌面客户端进行访问。 您可以单独下载AjaxTK,以在自己的应用程序中使用。

AjaxTK目前处于尴尬的位置,有一个非常令人印象深刻的示例,它可以在流通中发挥作用(Zimbra Web客户端),但除此之外没有看到更多的社区采用。 随着最近宣布将AjaxTK用作Apache Kabuki (开源AJAX工具包)的基础,它的未来看起来更加光明。

当前,AjaxTK专注于构建具有与桌面应用程序一样丰富的界面的Web应用程序。 提供了一整套的小部件,以及用于构建更多小部件的框架。

与大多数竞争对手不同,AjaxTK的设计宗旨是,您可以将小部件嵌入到“标准” HTML文档中所需的任何位置,也可以脱离框架并在任何小部件内呈现某些“标准” HTML。 AjaxTK的最大卖点可能是可以在所需的地方使用工具包,并在单个应用程序中的其他地方使用更传统的方法。

雅虎! 用户界面库

雅虎昨天才宣布! UI库仍处于起步阶段,但随着Yahoo! 在它背后,它有望成为一个很有影响力的参与者。

如果有什么值得一看的,那就是文档。 从第一天开始,每个可用组件都具有完整的API文档以及简短的“入门指南”以及完整的工作示例。 无需浏览开发人员的博客,也无需拆开复杂的应用程序:此工具包具有商用产品的所有功能。

目前,图书馆的范围是有限的。 除了用于动画,远程脚本(AJAX),事件处理,DOM操作和拖放的核心实用程序(肯定不容小!!)之外,该库当前仅提供三个用于构建用户界面的实际小部件:

  • 选择日期的日历
  • 滑块可从一系列值中直观地进行选择
  • TreeView用于浏览项目的层次结构

尽管选择并不太多,但仅这三个小部件就已经解决了一些传统上需要克服很多工作的问题。 毫无疑问,将来的小部件版本将解决Web应用程序用户界面的一些更普通的需求。

看到Yahoo!尤其令人耳目一新。 打开包装盒并与网络开发社区共享。 此举与Google通过将JavaScript资产隐藏在混乱的代码中来保护其JavaScript资产的方法形成了鲜明的对比。

当然,除了我在这里提到的四个库之外,还有许多其他的库,因此,如果我遗漏了您最喜欢的库,请不要沮丧。 也就是说,我之所以选择这四个,是因为它们为开发人员提供了社区支持,积极的开发和自由。 如果您认为您选择的库属于此列表,请告诉我原因。

做什么:网页设计模式

就在我开始着手进行Web设计时(顶部是徽标,左侧是导航,右侧是烦人的Flash广告),新一轮的Web应用似乎正在打破所有规则。 突然之间,到处都有新的可用性陷阱。 值得庆幸的是,有很多方法可以借鉴他人的错误。

连同其UI库Yahoo! 昨天宣布发布Yahoo! 设计模式库 ,一个针对常见Web设计问题的解决方案的集合。 您可以在库中找到以下几种模式:

  • 自动完成
  • 面包屑
  • 拖放模块
  • 模块标签
  • 导航标签
  • 对象分页
  • 搜索分页
  • 审查架构
  • 评估对象
  • 写评论

这些模式中的每一个都有一个动画屏幕快照,显示了所使用模式的典型实现,以及所解决问题的点状分解,实现解决方案时正确​​使用的重要细节,这些细节背后的原理以及可访问性解决方案的注意事项。

虽然雅虎! Design Pattern库目前仅包含少量模式(它们的公告显示为13,但我只能找到10),该库有望在不久的将来随着Yahoo!的发展而扩展。 完善内部文件供公众使用。

与其UI库一样,Yahoo! 不是第一个产生这样的东西的人。 关于网页设计模式,还有许多其他很棒的资源:

welie.com –交互设计中的模式提供了一些非常流畅的模式,尽管大多数模式仅适用于传统的Web设计,而不适用于富Web应用程序。 特别要注意的是“网站类型”模式,它提供了不同类型的网站(例如博物馆网站)通常需要的设计元素列表。

设计界面是常规用户界面模式的完整集合,其中许多适用于Web设计。 这些模式是最近在O'Reilly的《 Designing Interfaces 》一书中收集的,该网站是该网站的伴侣。

顺便说一句,SitePoint有一本类似的关于可用性的书,将于今年晚些时候发布,专门针对Web设计。

最终,John Allsop的WebPatterns网站看起来像是社区产生的Web设计模式的有希望的未来之乡,但目前只是(缓慢)起步。

简而言之,虽然代码猴子将继续探索网络的局限性,但Yahoo!之类的公司正在提供一些真正的解决方案。 足够稳定,可用于日常Web开发。 不要落伍!

无论您是进入新的JavaScript库还是探索适用于您所从事的工作类型的一些设计模式,现在都是将Web开发技能注入新生活的好时机。

From: https://www.sitepoint.com/javascript-libraries-and-patterns-yahoo-does-ajax/

你可能感兴趣的:(JavaScript库和模式:Yahoo! AJAX吗)