JasperReports中的组有助于以合理的方式组织报告数据。 报告组表示数据源中的一系列连续记录,这些记录具有一些共同点,例如某些报告字段的值。 报告组由元素定义。 报告可以包含任意数量的组。 声明后,可以在整个报告中引用组。 报告组有三个要素 - Group expression - 表示必须更改以启动新数据组的数据。 Group header section - 帮助将标签放在分组数据的开
与HTML5 同时兴起的是另外一批JavaScript API。从技术规范角度讲,这批API 不属于HTML5,但从整体上可以称它们为HTML5 JavaScript API。这些API 的标准有不少虽然还在制定当中,但已经得到了浏览器的广泛支持,因此本章重点讨论了它们。 requestAnimationFrame():是一个着眼于优化JavaScript 动画的API,能够在动画运行期间发出信号
随着JavaScript 开发的成熟,也出现了很多最佳实践。过去一度认为只是一种爱好的东西现在变成了正当的职业,同时还需要经历过去其他编程语言要做的一些研究,如可维护性、性能和部署。 JavaScript 中的可维护性部分涉及到下面的代码约定。 来自其他语言中的代码约定可以用于决定何时进行注释,以及如何进行缩进,不过JavaScript需要针对其松散类型的性质创造一些特殊的约定。 由于JavaSc
离线Web 应用和客户端存储数据的能力对未来的Web 应用越来越重要。浏览器已经能够检测到用户是否离线,并触发JavaScript 事件以便应用做出处理。可以指定在应用缓存中保存哪些文件以便离线时使用。对于应用缓存的状态及变化,也有相应的JavaScript API 可以调用检测。 本书还讨论了客户端存储的以下几方面内容。 以前,这种存储只能使用cookie 完成,cookie 是一小块可以客户端
JavaScript 中的函数非常强大,因为它们是第一类对象。使用闭包和函数环境切换,还可以有很多使用函数的强大方法。可以创建作用域安全的构造函数,确保在缺少new 操作符时调用构造函数不会改变错误的环境对象。 可以使用惰性载入函数,将任何代码分支推迟到第一次调用函数的时候。 函数绑定可以让你创建始终在指定环境中运行的函数,同时函数柯里化可以让你创建已经填了某些参数的函数。 将绑定和柯里化组合起来
Ajax 是无需刷新页面就能够从服务器取得数据的一种方法。关于Ajax,可以从以下几方面来总结一下。 负责Ajax 运作的核心对象是XMLHttpRequest(XHR)对象。 XHR 对象由微软最早在IE5 中引入,用于通过JavaScript 从服务器取得XML 数据。 在此之后,Firefox、Safari、Chrome 和Opera 都实现了相同的特性,使XHR 成为了Web 的一个事实标
JSON 是一个轻量级的数据格式,可以简化表示复杂数据结构的工作量。JSON 使用JavaScript 语法的子集表示对象、数组、字符串、数值、布尔值和null。即使XML 也能表示同样复杂的数据结果,但JSON 没有那么烦琐,而且在JavaScript 中使用更便利。 ECMAScript 5 定义了一个原生的JSON 对象,可以用来将对象序列化为JSON 字符串或者将JSON数据解析为Java
JavaScript 对XML 及其相关技术有相当大的支持。然而,由于缺乏规范,共同的功能却存在一些不同的实现。DOM2 级提供了创建空XML 文档的API,但没有涉及解析和序列化。既然规范没有对这些功能作出规定,浏览器提供商就各行其是,拿出了自己的实现方案。IE 采取了下列方式。 通过ActiveX 对象来支持处理XML,而相同的对象也可以用来构建桌面应用程序。 Windows 携带了MSXML
错误处理对于今天复杂的Web 应用程序开发而言至关重要。不能提前预测到可能发生的错误,不能提前采取恢复策略,可能导致较差的用户体验,最终引发用户不满。多数浏览器在默认情况下都不会向用户报告错误,因此在开发和调试期间需要启用浏览器的错误报告功能。然而,在投入运行的产品代码中,则不应该再有诸如此类的错误报告出现。 下面是几种避免浏览器响应JavaScript 错误的方法。 在可能发生错误的地方使用tr
HTML5 除了定义了新的标记规则,还定义了一些JavaScript API。这些API 是为了让开发人员创建出更好的、能够与桌面应用媲美的用户界面而设计的。本章讨论了如下API。 跨文档消息传递API 能够让我们在不降低同源策略安全性的前提下,在来自不同域的文档间传递消息。 原生拖放功能让我们可以方便地指定某个元素可拖动,并在操作系统要放置时做出响应。还可以创建自定义的可拖动元素及放置目标。 新
HTML5 的<canvas>元素提供了一组JavaScript API,让我们可以动态地创建图形和图像。图形是在一个特定的上下文中创建的,而上下文对象目前有两种。第一种是2D 上下文,可以执行原始的绘图操作,比如: 设置填充、描边颜色和模式 绘制矩形 绘制路径 绘制文本 创建渐变和模式 第二种是3D 上下文,即WebGL 上下文。WebGL 是从OpenGL ES 2.0 移植到浏览器中的,而O
虽然HTML 和Web 应用自诞生以来已经发生了天翻地覆的变化,但Web 表单相对却没有什么改变。使用JavaScript 可以增强已有的表单字段,从而创造出新的功能,或者提升表单的易用性。为此,表单、表单字段都引入了相应的属性和方法,以便JavaScript 使用。下面是本章介绍的几个概念。 可以使用一些标准或非标准的方法选择文本框中的全部或部分文本。 大多数浏览器都采用了Firefox 操作选
事件是将JavaScript 与网页联系在一起的主要方式。“DOM3 级事件”规范和HTML5 定义了常见的大多数事件。即使有规范定义了基本事件,但很多浏览器仍然在规范之外实现了自己的专有事件,从而为开发人员提供更多掌握用户交互的手段。有些专有事件与特定设备关联,例如移动Safari 中的orientationchange 事件就是特定关联iOS 设备的。 在使用事件时,需要考虑如下一些内存与性能
DOM2 级规范定义了一些模块,用于增强DOM1 级。“DOM2 级核心”为不同的DOM类型引入了一些与XML 命名空间有关的方法。这些变化只在使用XML 或XHTML 文档时才有用;对于HTML 文档没有实际意义。除了与XML 命名空间有关的方法外,“DOM2 级核心”还定义了以编程方式创建Document 实例的方法,也支持了创建DocumentType 对象。 “DOM2 级样式”模块主要针
虽然DOM 为与XML 及HTML 文档交互制定了一系列核心API,但仍然有几个规范对标准的DOM进行了扩展。这些扩展中有很多原来是浏览器专有的,但后来成为了事实标准,于是其他浏览器也都提供了相同的实现。本章介绍的三个这方面的规范如下。 Selectors API,定义了两个方法,让开发人员能够基于CSS 选择符从DOM中取得元素,这两个方法是querySelector()和querySelec