| | | | | |
Java SE 6中 XML 数字签名的标准 Java 接口 XML 数字签名技术用于对 XML 格式的数据进行数字签名,以保证报文的完整性,不可否认性,以及提供身份认证信息。JSR 105 提供了 XML 数字签名的 Java 接口,而最近发布的 Java SE 6 则包括了 JSR 105的 实现,从而为基于 Java 的应用程序提供了标准的 XML 数字签名接口。本文首先简要介绍技术背景,以实例来讲解 XML 数字签名的语法和处理规则,之后用具体的程序例子解释如何使用 Java SE 6 生成各种格式的 XML 数字签名并进行验证。 | | | | 2007年4月16日 | |
|
XML 和 Java 技术: 数据绑定的多种用法 Brett McLaughlin 讨论了数据绑定 API 和几种数据绑定方法的优点。 | | | | 2007年4月13日 | |
|
纯 servlet:重新考虑视图 对于具有动态内容的 Web 页面,可以使用 Java Server Pages(JSP)技术将开发人员和 UI 设计人员的工作分离开来。遗憾的是,JSP 对于许多设计人员来说太复杂了,所以 Java 开发人员只好自己处理 JSP 代码,这往往会产生令人不满意的结果。本文演示一种非正统的替代方法:通过使用简单的 helper 对象,根据纯 servlet 构建 Web 界面。 | | | | 2007年4月13日 | |
|
Geronimo 叛逆者: 使用 Spring 框架轻松解决数据访问和配置问题 如果您是一名典型的开发人员,那您必然乐意得到一个可解决数据访问问题的解决方案,也会欢迎任何能够简化配置的工具。如果不是有人提出了 Spring,则很难从总体上探讨 Web 应用程序,对于这些特定的问题更是如此。但是,天哪,我们真的需要另外一种 Web 应用程序框架吗?在我决定撰写一期 Geronimo 叛逆者文章,来探讨 Apache Geronimo 和 Spring 的交叉时,我就知道,这正是搞清所有关于 Spring 框架的传闻的大好时机。Jeff Genender 为我解答了很多难题,我完成了这个任务。 | | | | 2007年4月12日 | |
|
Valang Validator 攻略 Valang 是 Validation Language 的缩写,Valang Validator 的字面含义就是“使用验证语言的验证器”,是一种支持声明的验证器。本文详细的介绍了 ValangValidator 的使用和相关所需的配置。作为一种新型的验证工具,它提供的验证语言(valang)具有简单、易学,易扩展等特点。 | | | | 2007年4月12日 | |
|
面向 Java 开发人员的 db4o 指南: 简介和概览 本文是系列文章的开篇,介绍了 db4o,并解释了它因何成为当今关系型数据库的重要选择。 | | | | 2007年4月9日 | |
|
Geronimo 叛逆者: 直面 JSF 在上一期 “Geronimo 叛逆者” 专栏文章中,我想知道 Spring 最重要的功能是什么,当我继续探究下去时,我开玩笑说现在需要有个人来告诉我为什么 JavaServer Faces (JSF) 这样火爆。您不知道,摆在我桌面上的下一件事就是需要 Apache Geronimo 和 Apache MyFaces 之间进行交互,主要集中在其 JSF 的实现。嗯,现在变成一件好事了。我与 IBM 的 Tim McConnell 进行了一次会谈,他目前正在将 Geronimo 与 MyFaces 集成,我了解到了比预期多得多的关于实际上怎样实现此类规范的内容。 | | | | 2007年4月6日 | |
|
进入 Harmony 世界,第 5 部分: Harmony 基础设施介绍 本文较详细地介绍了 Harmony 项目中一些重要的基础设施,展示如何搭建配置开发环境,以及如何参与到 Harmony 项目的实际开发中来。 | | | | 2007年4月6日 | |
|
使用 Google Web Toolkit、Apache Derby 和 Eclipse 构建 Ajax 应用程序,第 2 部分: 可靠后端 本文是使用 Google Web Toolkit(GWT)构建 Asynchronous JavaScript + XML(Ajax)应用程序系列文章的第 2 部分,介绍如何为 Web 应用程序构建 Apache Derby 数据库,并使用它驱动 GWT。本系列文章的第 1 部分向您介绍了 GWT,并演示了如何使用它来为 Web 应用程序创建富客户机前端。这一次,您将走进幕后,了解如何使用数据库和用于将数据转换为 GWT 可用格式的代码,从而设置后端。阅读完本文后,您将可以使前端和后端相互通信。 | | | | 2007年4月4日 | |
|
使用 Google Web Toolkit、Apache Derby 和 Eclipse 构建 Ajax 应用程序,第 3 部分: 通信 在本系列的前两篇文章里,您已经了解了如何使用 Google Web Toolkit (GWT) 和 Apache Derby 关系数据库创建简单的 Web 应用程序。第 1 部分主要介绍了如何使用 GWT 构建名为 Slicr 的比萨交付系统的前端。在第 2 部分中,向您展示了如何使用 Derby 创建关系数据库,并简要演示了将数据库行转换为 Java 对象的机制。现在将开始变得有趣起来!在第三篇文章中,了解如何使客户机与服务器相互进行对话。您将使用 GWT 内的远程过程调用(Remote Procedure Call,RPC)框架从服务器获取数据,这几乎就像执行一次 Java 方法调用一样简单。 | | | | 2007年4月4日 | |
|
使用 Google Web Toolkit、Apache Derby 和 Eclipse 构建 Ajax 应用程序,第 4 部分: 部署 在本系列的前三篇文章中,您已经使用 Google Web Toolkit (GWT) 构建了简单但实用的 Web 应用程序。至此,您一直在编辑和调试使用 GWT 的托管模式的应用程序,GWT 的托管模式允许在 Java 开发工具内模拟 Web 服务器环境。糟糕的是,让所有用户都下载 Eclipse 只为运行 Web 应用程序是不切实际的。本文是本系列的第四篇文章,阅读本文,您将了解如何在 Java Web 应用服务器上部署 GWT 应用程序,并获得关于使用 Apache Derby 数据库驱动 GWT 的提示。 | | | | 2007年4月4日 | |
|
Java Web 服务,第 2 部分: 深度探索 Axis2:AXIOM Apache Axis2 Web 服务框架构建于新的 AXIOM XML 文档模型之上,可以进行高效的 SOAP 消息处理。与常规的文档模型不同,AXIOM 仅在被访问时才会在内存中构建文档表示。了解为什么这种按需构造的方法对于 SOAP 处理来说非常合适,以及为什么 XOP/MTOM 附件、数据绑定和性能非常适于这种情况。 | | | | 2007年4月2日 | |
|
追求代码质量: 使用 TestNG-Abbot 实现自动化 GUI 测试 TestNG-Abbot 是一种测试框架,它为 GUI 组件的测试带来了新的活力。本月,Andrew Glover 将带领您亲历使用 TestNG-Abbot 测试 GUI 过程中难度最大的部分,即理解用户场景的实现过程。一旦理解了它,您会发现将 GUI 组件隔离并使用框架所含的极其方便的 fixture 对象对其进行验证是多么地简单。 | | | | 2007年4月2日 | |
|
Geronimo 叛逆者: 安全和 Apache Geronimo 的未来 对于 Apache Geronimo 这样提供全面服务的应用服务器来说,需要具有全面服务的安全实现,就是说仅仅支持 SSL 连接还不够。安全实现是指保证应用程序中发出的内部请求的安全。在本部分,David Jencks 将与 Geronimo 叛逆者专栏的主笔讨论关于 Geronimo 的安全实现的当前和未来的看法。 | | | | 2007年3月30日 | |
|
跨越边界: 对 Rails 进行扩展 Java 编程语言一直以来都是一个很出色的 “熔炉”,它具有用于集成的丰富和强大的功能 —— 从用于集成企业库的依赖性注入容器,到 Enterprise JavaBeans (EJB) 技术,再到 Eclipse 的组件模型。通过使用大量这样的理念和架构,Java 开发人员率先采用新的方法将完全不同的软件库和组件组合成一个整体。但是 Java 开发人员并没有对优秀的集成技术造成垄断。本文通过审视一个流行插件来了解 Ruby on Rails 插件的工作原理。 | | | | 2007年3月29日 | |
|
IBM WebSphere 开发者技术期刊: 最重要的 Java EE 最佳实践 2004 年 IBM WebSphere 开发者技术期刊中曾发表过一篇名称类似的文章,本文是其更新版本。这个修正版中考虑了一些不断变化的技术趋势,更重要的是推荐了一些作者认为应当广泛遵循、但尚未广泛遵循的实践。 | | | | 2007年3月27日 | |
|
JavaScript 中的有限状态机,第 3 部分: 测试小部件 在本系列中,学习如何用有限状态机系统化地为一个简单 Web 小部件(一个淡入和淡出视图的动画式工具提示)设计复杂的行为。产生的代码既紧凑又简洁,它的逻辑是透明的,它的动画效果即使在负载很重的处理器上也能够顺畅地展现。在本文中,学习如何处理让这个实现能够在所有流行的 Web 浏览器上运行的实际问题。第 1 部分讲解如何用有限状态机系统化地为一个简单的 Web 部件设计复杂的行为。第 2 部分描述了如何用 JavaScript 实现这种行为,并充分利用语言的独特特性,包括关联数组和函数闭包。 | | | | 2007年3月27日 | |
|
XML 和 Java 技术: XML 究竟有哪些优势? Brett McLaughlin 提出 XML 作为数据交换格式的价值的问题。 | | | | 2007年3月26日 | |
|
让开发自动化: 持续测试 准备好开始在您的开发人员测试活动中大获全胜吗?在本期的让开发自动化中,开发自动化专家 Paul Duvall 介绍了几种自动化的开发人员测试,每一次改变源代码都能够运行这些测试。Paul 提供了 Selenium、DbUnit 和 JUnitPerf 测试的例子,即,如果经常运行这些测试可以帮助您尽早发现应用程序的问题。 | | | | 2007年3月26日 | |
|
Little-G:为您的应用服务器瘦身 您是否常常构建简单的应用程序,但是必须用重量级应用服务器来部署它们?您是否知道在 Java Platform, Enterprise Edition(Java EE)众多的特性中有百分之几是我们常用的?我估计只有 10%。Apache Geronimo 是一种稳定、开源的 Java 2 Platform, Enterprise Edition(J2EE) 1.4 认证应用服务器;但是它的特性过于丰富繁冗,规模过于庞大。为了给 Web 应用程序构建一种简单、轻量但有用的容器,Apache 的开发人员创建了 Apache Geronimo Little-G,这是原始 Geronimo 应用服务器的简化版本。尽管 Little-G 不是 J2EE 认证的服务器,但是它具备最常用的符合 J2EE 规范的特性,包括一个完整的 Web 容器、事务管理器、数据库连通性。在本文中,我们将研究 Little-G 的特性并学习如何在其上部署和运行 Web 应用程序。 | | | | 2007年3月23日 | |
|
Java 理论与实践: 在 JDK 早期版本中使用 Java 5 的语言特性 Java 5 添加了许多强大的语言特性:泛型、枚举、注释、自动装箱和增强的 for 循环。但是,许多工作组仍然被绑定在 JDK 1.4 或以前的版本上,可能需要花些时间才能使用新版本。但是,这些开发人员仍然可以使用这些功能强大的语言特性,同时在 JVM 早期版本上部署。在这一期 Java 理论与实践中,Brian Goetz 将演示如何在 JDK 早期版本中使用 Java 5 的语言特性。 | | | | 2007年3月21日 | |
|
WebSphere ESB 入门:创建 POJO 并将其作为服务发布 从传统 Java 对象(Plain Old Java Object,POJO)开发服务组件,并在 IBM WebSphere Enterprise Service Bus 中发布。采用 Web 服务描述语言(Web Services Description Language,WSDL)定义接口,并使用 Java 实现。了解如何将服务组件与独立引用相关联,以及如何使用独立引用跨 ESB 访问服务。 | | | | 2007年3月20日 | |
|
实现一个不受约束的不变性模型 不变对象对于编写线程安全的软件来说非常有帮助。在 Java 语言中,保证不变性的主要机制是使用 final 字段。但 final 字段必须在构造函数中设置,而在一些情况中,这一要求未免太过局限。本文将介绍一种有效的实现方式,使用标准缓存字段来实现一个略微随意的不变性模型,该字段的值无需同步也能安全访问。 | | | | 2007年3月14日 | |
|
Simple Persistence for Java 的零配置对象持久性 Simple Persistence for Java 是一个开源的对象关系型持久性库,它使用定制查询语言以及内建数据库支持来简化 Java 应用程序中的对象持久性。在本文中,软件架构师 Sami Salkosuo 介绍了该库,并带您领略解决对象持久性的零管理以及零配置方法。 | | | | 2007年3月12日 | |
|
JavaScript 中的有限状态机,第 2 部分: 实现组件 本系列的第 1 部分演示了如何用有限状态机系统化地为一个简单 Web 小部件(一个淡入和淡出视图的动画式工具提示)设计复杂行为。在本文中,您将学习如何用 JavaScript 实现这种行为,并充分利用语言的独特特性,包括关联数组和函数闭包。产生的代码既紧凑又简洁,它的逻辑是透明的,它的动画效果即使在负载很重的处理器上也能够平滑地执行。第 3 部分将讨论如何让这个实现能够在所有流行浏览器上运行的实际问题。 | | | | 2007年3月5日 | |
|
跨越边界: Lisp 之美 Lisp 长久以来一直被视为伟大的编程语言之一。其漫长的发展过程(接近五十年)中引发的追随狂潮表明:这是一门非同凡响的语言。在 MIT,Lisp 在所有程序员的课程中占了举足轻重的地位。像 Paul Graham 那样的企业家们将 Lisp 卓越的生产力用作他们事业成功起步的推动力。但令其追随者懊恼万分的是,Lisp 从未成为主流编程语言。作为一名 Java 程序员,如果您花一点时间研究 Lisp 这座被人遗忘的黄金之城,就会发现许多能够改进编码方式的技术。 | | | | 2007年3月5日 | |
|
使用 StAX 解析 XML,第 1 部分: Streaming API for XML (StAX) 简介 Streaming API for XML (StAX) 是用 Java(TM)语言处理 XML 的最新标准。作为一种面向流的方法,无论从性能还是可用性上都优于其他方法,如 DOM 和 SAX。本系列分为 3 部分,本文是第 1 部分,简要介绍了 StAX 及其处理 XML 的基于指针的 API。 | | | | 2007年3月2日 | |
|
使用 SVK 构建分布式版本控制环境 SVK 是一个基于 Subversion 构造的分布式的版本控制系统。通常的集中式管理系统,如 CVS,Subversion 已经得到广泛应用,但是集中式的管理存在相应的缺陷,例如对唯一的版本库过分依赖:一旦不能正常连接到集中式的版本库,整个系统陷入瘫痪。SVK 最大的能力就在于可以维护分布式的版本库,分散的开发人员可以通过 SVK 建立远程的 CVS,Subversion,P4 协议的版本库镜像,选择工作在自己合适的镜像版本库,这个镜像甚至可以是本地的,整个工作可以离线进行,然后在需要的时候同步镜像版本库到主版本库。 | | | | 2007年2月28日 | |
|
单元测试利器 JUnit 4 本文主要介绍了如何使用 JUnit 4 提供的各种功能开展有效的单元测试,并通过一个实例演示了如何使用 Ant 执行自动化的单元测试。本文假设读者对 Eclipse 下进行 Java 开发有一定的经验,并了解 Java 5 中的注解(annotation)特性。 | | | | 2007年2月28日 | |
|
EJB 倡导者: 有状态会话 Bean 的实际使用 正当您认为某个给定的组件没有什么用处的时候,比如有状态会话 EJB,可能正好会出现适合应用该组件的场景。在本系列的上一期专栏中,EJB 倡导者研究了一些棘手的情况,它们有时需要提供长时间运行的服务。 | | | | 2007年2月27日 | |
|
Java 2007:新年展望 2007 年将是载入史册的一年,Sun Microsystems 公司将于这一年在开源许可协议下发布 Java 开发包(JDK),从而放弃了对 Java? 平台的统驭,将权力交给了 Java 开发人员社区!在本文中,Java 开发人员 Elliotte Rusty Harold 从各个方面预测了 Java 平台的新方向,从脚本到 bug 修复到新语法。 | | | | 2007年2月26日 | |
|
Web 2.0 用户界面技术 假设您需要创建一个适合 Web 2.0 环境的新应用程序。一部分用户非常喜欢基于 HTML 的用户界面,而其他用户希望他们使用的每个应用程序都表现得像 Excel 那样的桌面应用程序。您的老板要求有工作效率高的用户体验,但是 CIO 不允许开发需要用户手工部署的任何东西。您知道 HTML 无法达到这样的目标,但是怎么做才能符合要求呢?本文要讨论一系列 Web 2.0 用户界面技术,让您构建的应用程序具有比浏览器更好的用户体验。而且,可以像任何其他 Java 2 Enterprise Edition(Java EE)应用程序一样集中地部署和管理它们。 | | | | 2007年2月26日 | |
|
IBM WebSphere 开发者技术期刊: 通过 WebSphere Application Server V6.1 利用 OpenJPA Apache OpenJPA 项目是 Java Persistence API 的一个开放源代码实现,集中于构建一个稳健、高性能、可伸缩的 JPA 规范实现。本文通过一个完整的示例来介绍 OpenJPA,该示例演示了现在如何通过 IBM WebSphere Application Server V6.1 来利用 OpenJPA 的部分功能。 | | | | 2007年2月25日 | |
|
在方法签名中使用控制反转(IoC) 控制反转(IoC)模式通常用于组件。本文描述了如何对方法签名使用该模式,以减少组件间的耦合并改善性能。IBM Global Business Services 顾问 Andr Fachat 用两个例子展示了这种方法的灵活性。 | | | | 2007年2月12日 | |
|
追求代码质量: 用 AOP 进行防御性编程 虽然防御性编程有效地保证了方法输入的条件,但如果在一系列方法中使用它,不免过于重复。本月,Andrew Glover 将向您展示通过一种更为容易的方式,即使用 AOP、契约式设计和一个便捷的叫做 OVal 的库,来向代码中添加可重用的验证约束条件。 | | | | 2007年2月12日 | |
|
Java 理论与实践: 理解 JTS —— 事务简介 Java Transaction Service 是 J2EE 架构的关键元素。它与 Java Transaction API 结合在一起,使我们能够构建对于各种系统和网络故障都非常健壮的分布式应用程序。这个由三个部分组成的系列文章的第一期讲述了一些基础知识,包括什么是事务,以及事务对于构建可靠的分布式应用程序来说至关重要的原因。 | | | | 2007年2月8日 | |
|
使用 Google Web Toolkit、Apache Derby 和 Eclipse 构建 Ajax 应用程序,第 1 部分: 梦幻前端 在通往创建在用户 Web 浏览器中运行的动态 JavaScript 应用程序的征途中,Google Web Toolkit(GWT)是举足轻重的一步。使用 GWT,开发人员可以利用熟知的 Java 技术设计用户界面(UI)和事件模型,而 GWT 会完成使代码对所有主流浏览器友好的繁重工作。这是本系列的第一篇文章,介绍 GWT 基础知识,包括 GWT 是怎样使您创建一个 Asynchronous JavaScript + XML(Ajax)应用程序,而且依然在 Java 语言中编写代码的。探索如何创建和运行一个小型的样本 GWT 应用程序 —— 近来十分流行的一项 Web 2.0 新业务,称为 Slicr,在线销售比萨饼。 | | | | 2007年2月2日 | |
|
在 Java Web 开发框架中创建 VoiceXML 页面,第 4 部分: 在 Java 中创建 VoiceXML 库 掌握了基于 Java 的 VoiceXML 应用程序的基础知识之后,您就可以开始编写更智能化的应用程序了。巧妙地利用 JavaBean 组件、servlet、JavaServer Pages(JSP)技术和普通旧式 Java 对象(POJO),您就可以使应用程序开发比以往任何时候更快、更流畅。 | | | | 2007年2月2日 | |
|
简单的 Xalan 扩展函数 Xalan XSLT 处理器几乎可以调用类路径中任何 Java(TM)类的方法。这样做可以提高性能,提供 XSLT 中不可用的三角函数、执行文件 I/O 和网络服务器等特性,或实现以 Java 语言可轻松编写但在 XSLT 中难以编写的算法。学习从 Xalan 中调用 Java 代码的基础知识。 | | | | 2007年2月2日 | |
|
三、二、一 …… Geronimo!,第 4 部分: 模式 Web 浏览器标志着由数据库模式开头的这条路线的终点。如何创建一个好的数据库模式呢?您不仅需要有效的工具;还需要一个计划。设计数据库这件事,一半是科学,一半是艺术,那现在就开始操练您的技术吧。发掘一些有用的技巧,设计一个快速、有效地响应变化的数据库模式。 | | | | 2007年1月30日 | |
|
JavaScript 中的有限状态机,第 1 部分: 设计一个小部件 有限状态机很早就已用作设计和实现事件驱动的程序(比如网络适配器和编译器)内复杂行为的组织原则。现在,可编程的 Web 浏览器为新一代的应用程序开辟了一种全新的事件驱动环境。基于浏览器的应用程序因 Ajax 而广为流行,而同时也变得更为复杂。程序设计人员和实现人员能够大大受益于有限状态机的原理和结构。本篇文章将向您介绍如何使用有限状态机来为一个简单的 Web 小部件 —— 一个能够淡入和淡出的工具提示 —— 设计复杂的行为。 | | | | 2007年1月29日 | |
|
让开发自动化: 用 Eclipse 插件提高代码质量 如果能在构建代码前发现代码中潜在的问题会怎么样呢?很有趣的是,Eclipse 插件中就有这样的工具,比如 JDepend 和 CheckStyle,它们能帮您在软件问题暴露之前发现这些问题。在让开发自动化的本期文章中,自动化专家 Paul Duvall 将带来一些关于 Eclipse 插件的例子,您可以安装、配置和使用这些静态分析插件,以便在开发生命周期的早期预防问题。 | | | | 2007年1月29日 | |
|
认识 Atom 发布协议,第 3 部分: Apache Abdera 项目简介 本系列的前几期介绍了 Atom 发布协议(Publishing Protocol),描述了在实际应用程序中使用的各种方式。本文将举例说明如何使用一个新的开放源代码项目 Abdera 实现支持 Atom 的应用程序,该项目目前处于 Apache Software Foundation 孵化阶段。 | | | | 2007年1月26日 | |
|
MIDlet 国际化 国际化不仅仅是一个趋势 —— 它已经成为开发应用程序的必要需求。JSR-238 的目的是帮助 Java Platform,Micro Edition(Java ME)开发人员利用 Mobile Information Device Profile(MIDP)/Connected Limited Device Configuration(CLDC)将其国际化工作减至最少。通过这篇文章发现一种国际化 MIDlet 的更便捷方法。 | | | | 2007年1月25日 | |
|
三、二、一 …… Geronimo!,第 3 部分: 状态问题 尽管计算机和 Web 使日常的任务变得更加便利,但它们也带来了一些新的挑战。如今的 Internet,其运行再也不仅仅限于对 HTML 编码的 Web 页面的请求做出响应。当今的 Web 站点必须能够维护大量的用户信息,并且能够管理许多复杂的任务。幸运的是,现在已经有一些前沿的工具能够用来简化这类状态问题。其中一种具有行业水准的解决方案脱颖而出,它就是会话状态。本文演示了 Apache Geronimo 如何能够维护成千上万个同时连接的状态,这样一来,IT 经理们就可以松口气了。 | | | | 2007年1月25日 | |
|
在 Java Web 开发者框架中创建 VoiceXML 页面,第 3 部分: 在 Java 语言中简化 VoiceXML 开发 学习了本系列的前两部分之后,您应已能够轻松地使用 Java servlet 创建多页面应用程序。但 servlet 并非简单的 Java 类文件,每次更改后都必须重新编译 —— 即便只作了一次简单的更改。如果为大部分 VXML 使用 JavaServer Pages(JSP)技术,您会发现更改变得更加轻松,此外,每次对 VXML 作出简单更改时,再也不必重新编译 servlet。 | | | | 2007年1月25日 | |
|
IBM WebSphere 开发者技术期刊: 在 WebSphere MQ V6.0 上运行独立 Java 应用程序 了解如何开发使用 IBM WebSphere MQ V6.0 发送和接收消息的 J2SE 应用程序。得到的应用程序可以使用 J2EE 的标准 JMS 和 JNDI API,而不需要在 J2EE 应用服务器上进行开发。 | | | | 2007年1月23日 | |
|
跨越边界: 闭包 闭包是可以用作函数参数和方法参数的代码块。一直以来,这种编程结构都是一些语言(如 Lisp、Smalltalk 和 Haskell)的重要组成部分。尽管一些颇具竞争力的语言(如 C#)采纳了闭包,但 Java 社区至今仍抵制对它的使用。本文探讨闭包在为编程语言带来一点点便利的同时是否也带来不必要的复杂性、闭包还有无更多的益处。 | | | | 2007年1月22日 | |
|
跨越边界: JavaScript 语言特性 JavaScript 常被人们认为是编程语言中无足轻重的一员。这种观点的形成可以“归功”于其开发工具、复杂且不一致的面向 HTML 页面的文档对象模型以及不一致的浏览器实现。但 JavaScript 绝对不仅仅是一个玩具这么简单。在本文中,Bruce Tate 向您介绍了 JavaScript 的语言特性。 | | | | 2007年1月18日 | |
|