E、使用 DOM 操作 XML 文档 在数据表示方面,XML 文档更加结构化。DOM 在支持 HTML 的基础上提供了一 系列的 API,支持针对 XML 的访问和操作。利用这些 API,我们可以从 XML 中提 取信息,动态的创建这些信息的 HTML 呈现文档。处理 XML 文档,通常遵循“加 载 XML 文档?提取信息?加工信息?创建 HTML 文档”的过程。下面的例子演示 了如何加载并处理 XML 文档。 这个例子包含两个 JS 函数。loadXML()负责加载 XML 文档,其中既包含加载 XML 文档的 2 级 DOM 代码,又有实现同样操作的 Microsoft 专有 API 代码。需要 提醒注意的是,文档加载过程不是瞬间完成的,所以对 loadXML()的调用将在加 载文档完成之前返回。因此,需要传递给 loadXML()一个引用,以便文档加载完 成后调用。 例子中的另外一个函数 makeTable(),则在 XML 文档加载完毕之后,使用最 后前介绍过的 DOM 应用编程接口读取 XML 文档信息, 并利用这些信息形成一个新 的 table 表格。 例子 7 -- sample6_1.htm:
无标题文档
供读取调用的 XML 文档 – employees.xml: Programmer32768Sales70000CEO100000 7.5、处理 XML 文档 脱离 XML 文档的 AJAX 是不完整的。在本部分未完成之前,有读者说 AJAX 改 名叫 AJAH(H 应该代表 HTML 吧)比较合适。应该承认,XML 文档在数据的结构 化表示以及接口对接上有先天的优势,但也不是所有的数据都应该用 XML 表示。 有些时候单纯的文本表示可能会更合适。下面先举个 AJAX 处理返回 XML 文档的 例子再讨论什么时候使用 XML。 7.5.1、处理返回的 XML 例子 8 -- sample7_1.htm: 在这个例子中,我们采用之前确定的 AJAX 开发框架,稍微修改一下 body 内 容和 processRequest 的相应方式,将先前的 employees.xml 的内容读取出来并 显示。 body 的内容如下: processRequest()方法修改如下:
// 处理返回信息的函数 function processRequest() { if (http_request.readyState == 4) { // 判断对象状态 if (http_request.status == 200) { // 信息已经成功返回,开 始处理信息 var returnObj = http_request.responseXML; var xmlobj = http_request.responseXML; var employees = xmlobj.getElementsByTagName("employee"); var feedbackStr = ""; for(var i=0;i7.5.2、选择合适的 XML 生成方式 现在的 web 应用程序往往采用了 MVC 三层剥离的设计方式。XML 作为一种数 据保存、呈现、交互的文档,其数据往往是动态生成的,通常由 JavaBean 转换 过来。由 JavaBean 转换成 XML 文档的方式有好几种,选择合适的转换方式往往
能达到事半功倍的效果。 下面介绍两种常用的方式,以便需要的时候根据情况取 舍。 A、类自行序列化成 XML 类自行序列化成 XML 即每个类都实现自己的 toXML()方法,选择合适的 API、 适当的 XML 结构、尽量便捷的生成逻辑快速生成相应的 XML 文档。显然,这种方 式必须要求每个类编写专门的 XML 生成代码,每个类只能调用自己的 toXML()方 法。应用诸如 JDOM 等一些现成的 API,可以减少不少开发投入。例子 9 是一个 利用 JDOM 的 API 形成的 toXML()方法。 例子 9 -- toXml() 的 JDOM 实现 -- Employ 类的 toXml()方法: public Element toXml() { Element employee = new Element(“employee”); Employee.setAttribute(“name”,name); Element jobE = new Element(“job”).addContent(job); employee.setContent(jobE); Element salaryE = new Element(“salary”).addContent(salary); employee.setContent(salaryE); return employee; } JDOM 提供了现成的 API,使得序列化成 XML 的工作更加简单,我们只需要把 toXML()外面包装一个 Document,然后使用 XMLOutputter 把文档写入 servlet 就可以了。toXml()允许递归调用其子类的 toXML()方法,以便生成包含子图的 XML 文档。 使用类自行序列化成 XML 的方式,要每个类都实现自己的 toXML()方法, 而且存在数据模型与视图耦合的问题,即要么为每个可能的视图编写独立的 toXML()方法, 要么心甘情愿接收冗余的数据,一旦数据结构或者文档发生改变, toXML()就要做必要的修改。 B、页面模板生成 XML 方式 一般的,可以采用通用的页面模板技术来生成 XML 文档,这个 XML 文档可以 符合任何需要的数据模型,供 AJAX 灵活的调用。另外,模板可以采用任何标记 语言编写,提高工作效率。下面是一个采用 Struts 标签库编写的 XML 文档,输 出之前提到的 employees.xml: Sample8_2.jsp: <%@ page contentType="application/xml; charset=gb2312" import="Employee"%> <%@ page import="java.util.Collection,java.util.ArrayList"%> <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%> <% Employee em1 = new Employee(); em1.setName("J.Doe"); em1.setJob("Programmer"); em1.setSalary("32768"); Employee em2 = new Employee();
em2.setName("A.Baker"); em2.setJob("Sales"); em2.setSalary("70000"); Employee em3 = new Employee(); em3.setName("Big Cheese"); em3.setJob("CEO"); em3.setSalary("100000"); Collection employees = new ArrayList(); employees.add(em1); employees.add(em2); employees.add(em3); pageContext.setAttribute("employees",employees); %> 采用页面模板生成 XML 方式,需要为每个需要的的数据模型建立一个对立的 JSP 文件,用来生成符合规范的 XML 文档,而不能仅仅在类的 toXML()方法中组织对 象图来实现。不过,倒是可以更加方便的确保标记匹配、元素和属性的顺序正确 以及 XML 实体正确转义。
参考资料中 Philip McCarthy 的文章还描述了一种 Javascript 对象标注的 生成方式,本文在此不赘述。有兴趣的读者可以自行查看了解。 7.5.3、如何在使用 XML 还是普通文本间权衡 使用 XML 文档确实有其方便之处。 不过 XML 文档的某些问题倒是要考虑一下, 比如说延迟, 即服务器不能立即解析 XML 文档成为 DOM 模型。这个问题在一定程 度上会影响 AJAX 要求的快速反应能力。 另外, 某些情况下我们并不需要使用 XML 来表示数据, 比如说数据足够简单成只有一个字符串而已。就好像我们之前提到 的数据校验和级联菜单的例子一样。所以,个人认为在下面这些情况下可以考虑 使用 XML 来作为数据表示的介质: ? 数据比较复杂,需要用 XML 的结构化方式来表示 ? 不用考虑带宽和处理效率支出 ? 与系统其他 API 或者其他系统交互,作为一种数据中转中介 ? 需要特定各式的输出视图而文本无法表示的 总之,要认真评估两种表示方式的表示成本和效率,选择合适的合理的表示 方式。 在关于 AJAX 的系列文章的下一篇,我们将综合使用 DOM 和 XML,来实现一个 可以持久化的简单留言簿。另外,还将试着模拟 MSN Space 的部分功能,来体会 AJAX 的魅力。
用,或是声明了没有设置值都是undefined。 3.数据类型的定义 数值类型: var age=33; 字符串类型: var mood=”happy” 布尔值类型: var add=true; 数组类型: var list= Array(2) list[0]=”jhon”; list[1]=33; 或者: var list=Array(“jhon”,33) (注:数组内可定义任意类型的数据,且数组下标从0 开始) NULL类型: var name=null ;或name=””; Undefined类型: var person; 对象类型: var jer= new person; 对象类型是一种非常重要的数据类型.对象是自我包含的数据集合,包含在对象里的数据可以通过两种方式--属性(property)和方法(method) 访问 例如: person.age Math.round() 4.JS操作符 算数操作符:加法(+),减法(-),乘法(*),除法(/) 如: var num=1+1; var num=num-1; var num=num*num; var num=num/2;
JAVASCRIPT
Javascript 114、alert怎样换行? \r\n 115、什么情况用HTML控件,什么情况用WEB控件,并比较两者差别 如果有数据提交到server端时用web control好。一般为了提高效率能用html control在客户端执行,就用html control。 116、JavaScript中的对象. JavaScript中的Object是一组数据的key-value的集合,有点类似于Java中的有这些数据都是Object里的property.通常情况下,JavaScript中建立一个对象用”new”加上constructor function来实现.如new Date(),new Object()等. var book=new Object(); https://www.wendangku.net/doc/665770272.html,="JavaScript is Cool"; book.author="tom"; book.pages=514; 上面例子中的name和page就是名为book的对象中的property.我们可以用delete 来删除Object中的property:“delete https://www.wendangku.net/doc/665770272.html,;”.除了Object,Date等buildin 的对象外,我们可以写自己的constructor function,然后使用new就可以建立自己的对象.如上面的book可以写成: function Book(name,author,page){ https://www.wendangku.net/doc/665770272.html,=name; this.author=author; this.page=page; } var abook=new Book("JavaScript is Cool","tom",514); 117、function的用法 在JavaScript中,function是一种数据类型,所有的function都是从buildin的Function object衍生的对象.所以在JavaScript中function可以作为参数传递,可以作为Object的property,也可以当作函数返回值.function在JavaScript中有两种用法,一种是当作constructor,前面加上new keyword用来建立对象.一种是当作method,为其他对象调用. 注意function和method在中文里的意思相当,在有些语言里也可以通用.但是在JavaScript中,它们还是有所区别的.function本身是是一个对象,而当作为一个方法他属于一个对象时,就成为了一个这个对象的method,相当于一个对象种的属性.也就是说method是相对于一个对象而言的,function在某些情况下成为了一个对象的method. function Book(name,author,page){ https://www.wendangku.net/doc/665770272.html,=name; this.author=author; this.page=page;
javascript_dom
什么是DOM? 通过JavaScript,您可以重构整个HTML文档。您可以添加、移除、改变或重排页面上的项目。 要改变页面的某个东西,JavaScript就需要对HTML文档中所有元素进行访问的入口。这个入口,连同对HTML元素进行添加、移动、改变或移除的方法和属性,都是通过文档对象模型来获得的(DOM)。 在1998年,W3C发布了第一级的DOM规范。这个规范允许访问和操作HTML页面中的每一个单独的元素。 所有的浏览器都执行了这个标准,因此,DOM的兼容性问题也几乎难觅踪影了。 DOM可被JavaScript用来读取、改变HTML、XHTML以及XML文档。 DOM被分为不同的部分(核心、XML及HTML)和级别(DOM Level 1/2/3): Core DOM 定义了一套标准的针对任何结构化文档的对象 XML DOM 定义了一套标准的针对XML文档的对象 HTML DOM 定义了一套标准的针对HTML文档的对象。 HTML DOM 节点 HTML文档中的每个成分都是一个节点。 节点 根据DOM,HTML文档中的每个成分都是一个节点。 DOM是这样规定的: ?整个文档是一个文档节点 ?每个HTML标签是一个元素节点 ?包含在HTML元素中的文本是文本节点 ?每一个HTML属性是一个属性节点
。 10、保存为Html文件语言是_______端语言。 11、html文件中h的意思是___________.。 12、CSS的中文全称是__________________________。 13、<________ language=”javascript”>document.write(“大家好哦!”);。 14、http我们称之为_____________.。 15、http协议的缺省端口是____________。 16、单选框标记是___________________________。 17、文本框标记是__________________________。 18、javascript的标签标记是__________________。 19、表格中td标记之间必须要有_________,否则表格不能正常显示。 20、onmouseout事件是________。 21、onmouseover事件是___________。 22、onblue事件是_________________。 23、function单词的意思是____________。 14、var x;语句的功能是_________________。 25、变量b和B变量是_____________。 二、单选题。 01.()下列是javascript原文件扩展名是: A. HTML B.BODY C. js D. DIV
Javascript综合复习题大全及答案
J a v a s c r i p t综合复习题【共116题】 每份考卷中javascript只占一半。题型和分数如下: 1.单选题:10题*1分 = 10分 2.填空题:5题*1分 = 5分 3.程序阅读题:2题*4分 = 8分 4.程序实现题:2题*5分 = 10分 5.简答题:3题*5分 = 15分 合计:48分,共22题。 剩余52分,23题是另一门课程。 【提示:本综合复习题的目的是让同学们多见识各种题目。选择题、填空题以及程序阅读题可以仔细做,对于程序实现和简答题建议先理解再记忆,切记死背答案。】 第一部分:单选题 1.Javascript中, 以下哪条语句一定会产生运行错误?答案( B ) A、var _变量=NaN; B、var 0bj = []; C、var obj = string B. length C.非法字符 2.下面哪个描述不正确( B ) A. NaN!=null ==NaN C.{}!=false !=false 3.var arr = new Array(new Array(9,0,3,4,5) , ['a' , 'b' , 'c'] , new Array(2,9,0,6));则arr[1][3]=( D ) B.6 4.有如下代码: var arr = new Array(9); arr[0]=1; arr[2]=2; 该数组的length属性值为( D ) A、2 B、10 C、8 D、9 5.有一个submit按钮,在这个按钮控件上添加哪个事件不起作用?( D ) D. onsubmit 6.有一个变量var a=typeof string + 100+50 + NaN,以下哪个是alert(a)的结果? ( C ) B. function10050NaN C. undefined10050NaN D. NaN 7.以下代码,哪个结果是正确的?( A ) var str='123abc'; str += ('abc' , ''); alert(str);