1.什么是Ajax?
Ajax的全称是:AsynchronousJavaScript+XML
2.Ajax的定义:
Ajax不是一个技术,它实际上是几种技术,每种技术都有其独特这处,合在一起就成了一个功能强大的新技术。
3.Ajax包括:
XHTML和CSS
使用文档对象模型(DocumentObjectModel)作动态显示和交互
使用XML和XSLT做数据交互和操作
使用XMLHttpRequest进行异步数据接收
使用JavaScript将它们绑定在一起
Web开发领域的最新时髦术语其实质是“旧貌换新颜”。
Category Archives: ExtJS
什么是Ajax技术
2008.05.8 , ExtJS , No Comments , 529 浏览Unicode 字符编码
2008.05.8 , ExtJS , No Comments , 1,176 浏览Unicode 是一种重要的交互和显示的通用字符编码标准,它覆盖了美国、欧洲、中东、非洲、印度、亚洲和太平洋的语言,以及古文和专业符号。Unicode 允许交换、处理和显示多语言文本以及公用的专业和数学符号。它希望能够解决多语言的计算,如不同国家的字符标准,但并不是所有的现代或古文都能够获得支持。
Unicode 字符可以适用于所有已知的编码。Unicode 是继 ASCII(美国国家交互信息标准编码)字符码后的一种新字符编码,它为每一个符号定义一个数字和名称,并指定字符和它的数值(码位),以及该值的二进制位表示法,通过一个十六进制数字和前缀(U)定义一个16位的数值,如:U+0041 表示 A,其唯一的名称是 LATIN CAPITAL LETTER A。但请注意:JavaScript 1.3 之前的版本并不支持 Unicode 编码。
Unicode 与 ASCII 和 ISO 的兼容性
Unicode 兼容于 ASCII 字符并被大多数程序所支持,前128个 Unicode 码同 ASCII 码具有同样的字节值;Unicode 字符从 U+0020 到 U+007E 等同与 ASCII 码的 0x20 到 0x7E,不同于支持拉丁字母的7位 ASCII,Unicode 对每个字符进行16位值的编码设置,它允许几万个字符,例如 Unicode 2.0 版包含 38,885 个字符,它也可以进行扩展,如 UTF-16 允许用16位字符组合为一百万或更多的字符,UTF 将编码转换为真实的二进制位。
Unicode 完全兼容于国际标准 ISO/IEC 10646-1; 1993,它是 ISO 10646 的一个子集,并支持用两个八进制数的 ISO UCS-2(Universal Character Set)。JavaScript 1.3 版本对 Unicode 的支持意味着您可以任意地在程序中使用本地的字符以及特殊的科学符号。Unicode 提供了一种标准的方法来编码多语言文本,并且因为它兼容于 ASCII ,您也可以随意使用 ASCII 字符。
Unicode 转义序列
您可以在字符直接量中使用 Unicode 转义序列,该转义序列由六个 ASCII 字符组成:\u 加上一个四个数值的十六进制数。如:\u00A9 表示版权符号。JavaScript 里的每一个 Unicode 转义序列由一个字符所对应解释。下表是经常使用的特殊字符和它们的 Unicode 值。
类别 Unicode 值 名称 格式名称
空白(whitespace ) \u0009 制表符
\u000B 垂直制表符
\u000C 换页符
\u0020 空格
行结束符值 \u000A 换行符
\u000D 回车符
其它 Unicode 转义序列值 \u000b 退格符
\u0009 水平制表符
\u0022 双引号 "
\u0027 单引号 '
\u005C 反斜杠 /
JavaScript 对 Unicode 转义序列的用法不同于 Java。首先,在 JavaScript 中转义序列并没有解释为一个特殊的字符。例如:在一个字符串中的换行符转义序列在函数被解译前并不会终止该字符串,如果在注释中使用转义序列 JavaScript 将会忽略它。在 Java 中,如果一个转义序列被用于一个单独的注释行,它将被解译为一个 Unicode 字符。对于一个字符串直接量,Java 编译器将首先解译转义序列。例如:如果在 Java 中使用一个换行符(\u000A),它将会终止该字符串,在 Java 中将导致一个错误,因为在字符串直接量中不允许换行,您必须使用 \n 符;而在 JavaScript 中,这两者之间并没有区别。
用 Unicode 显示字符
您可以在不同的语言中使用 Unicode 来显示字符或专业符号,但这需要一个客户端能够支持 Unicode,例如 Netscape Navigator 4.x,并且客户端还得支持 Unicode 字体以及操作平台的支援。例如 Windows 95 它只支持部分的 Unicode,另外,为了输入非 ASCII 字符,您还得有支持所有 Unicode 字符的输入设备,一个标准的扩展键盘不能够做到这一点,但我们可以用 Unicode 转义序列来输入 Unicode 字符。
javascript对象模型
2008.05.8 , ExtJS , No Comments , 738 浏览基于类的面向对象的语言,如 Java 和 C++,建立于两个不同的实体概念之上:类(classes)和实例(instances)。 一个类定义所有的描述对象集合的属性(如 Java 中的方法的域,以及 C++ 中的成员及属性),它是个抽象的东西,不象对象所描述的特定成员; 一个实例是类的实际表现(题外话:如果您了解 FLASH 的话,那么这好象是 Symbol 和 Instance 的关系),即是它的成员。
基于原型的语言如 JavaScript,没有这种区别,它只具有对象。一个基于原型的语言具有原型对象的概念,一个对象是一个模板,它为一个新对象提供最初的属性。任何对象都可以指定它自己的属性,不管是您创建的还是在运行时的。另外,任何对象都可以同另一个对象联合为一个原型,允许第二个对象分享第一个对象的属性。 定义一个类 在基于类的语言中,类的定义是在一个单独的类定义中进行,在类定义中您可以指定其特有的方法,称为构造函数来创建类的实例。一个构造函数可以为实例的属性指定初始值并在其创建时执行其它初始化工作。您可以用 new 操作符来动态地用构造函数创建类的实例。
JavaScript 具有类似的模型,但没有与构造函数分离的类定义,而是定义一个构造函数来创建具有特定属性及其值的集合的对象。任何 JavaScript 函数都可以用作构造函数,您可以用 new 运算符和构造函数来创建一个新对象。 子类和继承 在一个基于类的语言,您可以通过类定义创建一个类的层次;在类定义中,您可以指定一个新类是一个已存在的类的子类。子类继承了父类的所有属性并可以有自己特定的新属性或修改它继承的属性。例如辅乳动物类有两个属性:会移动、会产子,而它的子类猫类又有一个新属性,它会“喵喵”叫,那么猫类就有三个属性:会移动、会产子、会“喵喵”叫。
JavaScript 同样具有继承性,它允许您用构造函数来关联原型,但它与上例又有所不同,以上例的辅乳类来讲:首先您用构造函数定义辅乳动物,指定会移动、会产子两个属性;接下来定义猫构造函数,指定会“喵喵”叫这个属性,最后您为猫构造函数赋于一个新的辅乳动物对象,这时您就创建了一个新的猫对象,它继承了辅乳动物的两个属性。 添加和删除属性 在基于类的语言中,您是在编译时创建一个类,而在编译时或运行时来实例化一个类的实例。当定义了类后您不能再改变类属性的数目和类型。而在 JavaScript 中,您可以在运行时从任何对象中添加或删除属性,如果您为对象集合原型的一个对象添加了一个属性,那么该原型的所有对象同时获取了这个新属性。
总结基于类(Java)和基于原型(JavaScript)的对象体系比较 Java JavaScript 类和实例是不同的实体 所有对象都是实例 用类定义定义类,类的实例化用构造函数方法 用构造函数定义和创建对象集合 用 new 操作符创建一个对象 相同 用类定义来定义已存在的子类以构造一个对象的层次 用构造函数关联原型,并通过把对象赋予原型创建对象层次 通过类链来继承属性 通过原型链继承属性 类定义指定一个类中所有实例的属性,不能在运行时动态添加属性 构造函数或原型指定一套初始属性集合,可以动态地为单独对象或整个对象集合添加或删除属性
在HTML中植入JavaScript
2008.05.8 , ExtJS , No Comments , 677 浏览您可以简单地象下面的语句一样植入一个 JavaScript 脚本:
<SCRIPT>
JavaScript 语句...
</SCRIPT>
指定语言及版本
因为在不同的浏览器版本中支持不同版本的 JavaScript,以及还有一些其它的脚本语言如:JScript、VBScript 等等,因此我们有必要在 <SCRIPT> 标记中使用 LANGUAGE 属性来指定您所用的脚本语言及其版本,这样当用户浏览器不支持该脚本语言时,<SCRIPT> </SCRIPT>标记中的代码将会被忽略,如下:
<SCRIPT LANGUAGE="JavaScript1.2">
下表为 JavaScript 和 Navigator 版本的关系
Navigator 版本 缺省的 JavaScript 版本 支持的 <SCRIPT> 标记
Navigator 2.0之前 不支持 JavaScript 无
Navigator 2.0 JavaScript 1.0 <SCRIPT LANGUAGE="JavaScript">
Navigator 3.0 JavaScript 1.1 <SCRIPT LANGUAGE="JavaScript1.1"> 及之前
Navigator 4.0-4.05 JavaScript 1.2 <SCRIPT LANGUAGE="JavaScript1.2"> 及之前
Navigator 4.06-4.5 JavaScript 1.3 <SCRIPT LANGUAGE="JavaScript1.3"> 及之前
我们还可以用 HTML 的注释标记将 JavaScript 代码隐藏起来,而一个浏览器将会忽略它不认识的标记,这样 <SCRIPT> 和 </SCRIPT> 标记都会被忽略,虽然那些不支持 <SCRIPT> 标记可能已经绝迹,您不必非得这样做,但这也是一个尊重用户的好习惯。
指定 JavaScript 代码文件
当然,我们也可以指定一个 JavaScript 源文件来代替在 HTML 文件中引用,这样您就可以在不同的 HTML 文件中引用相同的 JavaScript 源程序,如:
<SCRIPT SRC="common.js"></SCRIPT>
一个外部的 JavaScript 文件不能包含任何 HTML 标记,它的内容只能是 JavaScript 代码。
在HTML属性值中使用 JavaScript 表达式
使用 JavaScript 实体(entities),您可以指定一个 JavaScript 表达式作为一个 HTML 属性的值,实体值是动态赋予的,这就是说,您可以创建更灵活的 HTML 结构,因为 HTML 元素的属性依赖于页内先前放置元素信息。您可能对 HTML 的字符实体有所了解—它用(&)符后接一个名称并以分号(;)结束。如一个版权符号的字符实体为—© 等等。类似的,JavaScript 实体也用(&)开始,以分号(;)结束,不同的是它以一个用大括号({ })封装的 JavaScript 表达式来代替其名称和数字。如,假设您定义了一个变量 barWidth,那么您可以将其用于水平标尺的宽度百分比属性中:
<HR WIDTH="&{barWidth};%" ALIGN="LEFT>
引号标记
当您在一个字符串直接量中需要一个引号字符时,那么用单引号(')来将其与字符串直接量区分开来。如下例中的函数 bar 包含一个在双引号属性值中的字符串“left”:
function bar(widthPct) {
document.write(" <HR ALIGN='left',WIDTH=" + widthPct + "%>")
}
又如:<INPUT TYPE="button" VALUE="Press Me" onClick="myfunc('astring')">
JavaScript 的变量
2008.05.2 , ExtJS , No Comments , 341 浏览同其它语言一样,我们还得从最基础的东西讲起,那么对于 JavaScript 来说,它们的原理都是一样的,不同的是这两种语言对变量的表达方式并不相同,在 JavaScript 声明一个变量我们可以用下面的方法:
var Top, Bottom, Left, Right ;
或直接给它赋值:
x=23;
请注意,在 JavaScript 中,变量名是大小写敏感的,但也不尽然,有一些浏览器并不这么认为,不过对变量的命名应该养成一个好习惯,以便于自己和他人识别,另外需注意它必须以字母或下划线开始。
变量的作用范围:
当您在一个函数(function)之外定义一个变量,那它叫作全局变量,它可用于当前所有的文档;而在 function 内部定义的变量则叫局部变量,它只作用于函数内。通过指定窗口或框架的名字,您还可以在另一个窗口或框架中调用全局变量,例如:在一个框架文档中定义了名为“phoneNumber”的全局变量,您可以象这样“parent.phoneNumber”在子框架中引用该变量。
JavaScript 的值
2008.04.28 , ExtJS , No Comments , 418 浏览JavaScript 承认以下几种值:
- 数值:例如85或3.1415等;
- 逻辑(布尔)值:如 true 和 false;
- 字符串:如“您好”;
- null:空值,它是 JavaScript 的保留值,因为 JavaScript 的大小写敏感性,因此它不同与如 Null 或 NULL 等其它变量;
- undefined:值的顶级属性是未定义的,它也是一个保留值。
JavaScript 是一种动态数据类型语言,也就是说,当您声明一个变量时不必指定数据的类型,当程序执行时它会自动将其转换为您所需要的类型。而当您在一个表达式中将一个字符串类型的值和数值型的值进行“+”运算时,JavaScript 会将数值转换为字符串,如下:
x="The answer is"+23 //将返回"The answer is 23"
而在含别的运算符的语句中,却不会发生这种事情,如:
x="23"-2 //将返回21
植入JavaScript
2008.04.28 , ExtJS , No Comments , 474 浏览我在上一节曾经讲过,JavaScript 只能在 HTML 脚本中才能得以执行;那么,如何在 HTML 语言中植入一个 JavaScript 脚本呢?一个完整的语句应象下面一样:
<SCRIPT LANGUAGE="JavaScript">
<!--
......
//-->
</SCRIPT>
LANGUAGE 指定了一个 JavaScript 语言,但现在您也可以不用写该属性,因为目前几乎所有的浏览器都将其设为缺省值。一段 JavaScript 代码可以放置于 HTML 中的任意部位,但大多数情况下我们习惯将其放于 <HEAD>...</HEAD> 区段中,因为一些代码可能需要在页面装载起始就开始运行。但您可以不必拘泥于这项规定,您愿意如何放置都可以,甚至于您可以在 HTML 外部装入一个 JavaScript 程序,如下例:
<SCRIPT LANGUAGE="JavaScript" SRC="url">
......
</SCRIPT>
这里,url 当然是一个外部的 JavaScript 程序,在 Netscape 承认以后缀名为 .js 的程序,而 IE 对这个要求就比较宽松,只要它符合 MIME 格式就行了。这样,如果我们有很多的页面需要该段程序,只需编写一个外部程序就可以在多个页面中进行调用,是不是很方便。在上例中,不知您是否注意到 <!- - 和 - -> 标记,它为那些不支持 JavaScript 的浏览器提供了一个忽略它的方法,而 // 标记则是一段注释的开始。
什么是JavaScript
2008.04.28 , ExtJS , No Comments , 347 浏览JavaScript 是一种描述性语言,它可以被嵌入 HTML 的文件之中。通过 JavaScript 可以做到响应用户的需求事件(如表单的输入),这样当一位使用者输入一项信息时,它不需要通过网络传送到服务器端进行处理再传回来的过程,而可以直接在客户端进行事件的处理。你也可以想像成有一个可执行程序在你的客户端上执行一样(但这种执行程序是有限的,它对客户端电脑的控制力很差)!
JavaScript 和 Java 很相似,但它们却是完全不同的语言! Java 是由 Sun Microsystem 公司开发的一种面向对象的程序设计语言,类似于C++,它需要多种编译器和支持文件才能运行;但于 C++ 不同的是,Java 可以独立于任何操作平台,因此它就在当今 Internet 网络各种操作平台的基础上得以迅速发展。但它是一种比 JavaScript 复杂得多的标准程序语言。JavaScript 则是相对容易了解的函数式语言,JavaScript 创作者可以不那么注重编程技巧,例如声明所有的变量、类和方法,您也不必关心诸如 public、 private 或 protected 之类的费解的东西;更重要的是,它只能存在于一个 HTML 脚本中,而且只有在装入一个兼容的浏览器时才能运行,所以许多 Java 的特性在 JavaScript 中并不支持。现在,JavaScript 分为三类:核心版、客户方和服务器方 JavaScript,我在本教程中仅涉及到客户端的 JavaScript 1.3,它完全兼容于 ECMA-262 标准(欧洲计算机制造协会的 JavaScript 标准);您如需了解的更多信息,请参阅 Netscape 的有关 Netscape JavaScript 的介绍(微软也有一个 JavaScript 的变种,称之为 JScript,这我将在以后进行介绍)。目前在 Internet 上已有很多写好的 JavaScript 代码供您参考,本网站也将继续把它进行完善和开发。