ajax考试Word格式.docx

上传人:b****7 文档编号:21927197 上传时间:2023-02-01 格式:DOCX 页数:12 大小:22.59KB
下载 相关 举报
ajax考试Word格式.docx_第1页
第1页 / 共12页
ajax考试Word格式.docx_第2页
第2页 / 共12页
ajax考试Word格式.docx_第3页
第3页 / 共12页
ajax考试Word格式.docx_第4页
第4页 / 共12页
ajax考试Word格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

ajax考试Word格式.docx

《ajax考试Word格式.docx》由会员分享,可在线阅读,更多相关《ajax考试Word格式.docx(12页珍藏版)》请在冰豆网上搜索。

ajax考试Word格式.docx

JavaScript是一种轻量级的、解释性的程序设计语言,而且具备一定面向对象的能力。

JavaScript是弱类型、解释型和通用的脚本语言

弱类型:

变量不需要声明为字符串、整数或者对象,同一个变量可以使用不同类型来赋值。

解释型:

不需要编译,源代码本身就可以直接执行。

通用:

适用于大部分的算法和编程任务。

●CSS样式定义包括选择器和样式声明两部分?

选择器表明要为哪一个元素设置样式。

样式声明表明要用那些样式属性。

●window对象和document对象常用属性和方法。

▲课本P72—P89||P89—P94

●DOM节点操作的基本属性和方法。

▲课本P112—P125(创建、添加、修改和删除节点等)

1)JavaScript操作DOM的第一件事情就是寻找到元素节点。

varx=document.getElementById(‘hello’)

2)createElement()可以用来创建任何HTML元素。

varchildE1=document.createElement(“div”)

createNodeText()创建代表一段文本的DOM节点,这样的节点通常嵌入在标题、div、段落等

vartxtNode=document.createNodeText(“sometext”)

无论任何类型的节点一旦被创建,都必须将它附加到文档上,然后才能在浏览器中看到它

3)添加节点:

Node对象提供了appendChild方法来将程序创建的节点,添加到父节点的直属子节点列表的末尾。

该方法也可作用于已经存在于DOM树中的节点,执行方法后会改变节点在DOM树中的位置,而不是插入一个新的节点。

4)插入子节点:

Node对象提供了insertBefore方法来将新节点插入到指定子节点的前面,其语法格式如下所示。

parentNode.insertBefore(newNode,childNode);

5)替换子节点:

Node对象提供了replaceChild方法来使用一个新的节点替换一个子节点,其语法格式如下所示。

parentNode.replaceChild(newNode,childNode);

6)复制节点

Node对象提供了cloneNode方法来得到Node对象的一个副本。

cloneNode方法接受一个布尔值参数,来标识返回的节点副本中是否包含原节点的子节点。

当参数为true时,则包含子节点;

当参数为false时,则不包含子节点。

7)删除子节点

Node对象提供了removeChild方法来删除一个直属子节点,该方法接受一个参数,为需要参数的子节点的引用。

基本语法如下所示:

parentNode.removeChild(childNode);

8)读取节点属性

使用Node对象的getAttribute方法可以得到节点的某一属性的值,该方法接受一个属性名作为参数,返回指定属性的值

9)添加和修改属性节点

当需要添加或者修改一个属性节点时,可以使用Node对象的setAttribute方法。

其基本语法格式如下所示:

node.setAttribute(attName,attValue);

10)删除属性节点

当需要删除一个节点的某个属性时,可以使用removeAttribute方法。

removeAttribute方法接受一个参数,表明了需要删除的属性的名称。

node.removeAttribute(attName);

● XMLHttpRequest对象属性和方法?

Open,SendsetRequestHeader,onReadystatechange,readyState,responseText,responseXML

Status,statusText

●MVC黄金定律

*:

MVC的黄金定律是:

视图和模型不应该相互通信。

●为什么要保持逻辑和视图的分离?

保持逻辑和视图的分离使得视图和模型不直接交互,始终通过控制器来进行。

控制器可以看作是一个薄的边界层,允许模型和视图通过它来通信,它使得在代码库中实现清晰的职责分离,提高了代码的灵活性和可维护性

●Dom中常用的GUI事件处理函数属性有哪些?

●在Ajax应用中,服务器有哪两个角色?

1)将应用交付到浏览器;

2)与客户端对话,处理查询并提供请求需要的数据;

●流行的实现语言有哪些?

 PHP、Java、ASP、ASP.NET等

●与用户交互数据时,有哪几种类型数据?

各有什么优缺点?

Ⅹ用户交互分成四种类型:

①仅限于客户端的(client-only)----用户交互由已加载到浏览器中的脚本来处理的交互。

不需要任何Web服务器的资源,这对于提高应用的响应速度和降低服务器的负载有好处

剩下的三种类型都涉及到与后台通信,区别主要在于返回的数据不同

②以内容为中心的(content-centric)----传统的web设计,仅页面交互,不能实现局部刷新,流量大,用户体验差

③以脚本为中心的(script-centric)----减少了流量,减少了带宽的使用,客户端与服务器的耦合度要求高

④以数据为中心的(date-centric)----实现局部刷新,减少流量,减少带宽,提高了用户体验

●Json与XML相比各有什么优缺点?

1)非冗长性。

2)解析方便:

JSON与JavaScript对数据的内部表示一致,这样就可以方便的将JSON的数据转化为对象,不需要像XML那样通过复杂的DOM来操作,避免了浏览器对DOM实现的差异。

3)结构简单,在很多语言中都支持JSON

JSON没有像XML那样的命名空间机制,在不同上下文的相同信息段混合在一起时,可能会给解析带来一定的麻烦。

同时JSON的创建和验证过程跟XML相比,会稍微麻烦一些;

●在JavaScript如何读取和生成JSON

P369:

在JavaScript中读取JSON的关键是eval()函数,它接受一个字符串作为参数,并将该字符串作为JavaScript语句,并调用JavaScript解析器来运行该语句,然后将运行的结果当做返回值返回。

P371:

JSON提供了json.js包,将其引入然后就可以简单的使用object.toJSONString()转换成JSON数据.

●在java中如何读取和生成JSON

JSON还提供了java的jar包http:

//www.json.org/java/index.htmlAPI也很简单,下面举个例子

在javascript中填加请求参数

js代码

functionsendRequest(){

varcarr=newCar("

Dodge"

"

CoronetR/T"

1968,"

yellow"

);

varpars="

car="

+carr.toJSONString();

varurl="

/MyWebApp/JSONTest1"

;

varmailAjax=newAjax.Request(

url,

{

method:

'

get'

parameters:

pars,

onComplete:

jsonResponse

}

);

}

使用JSON请求字符串就可以简单的生成JSONObject并进行解析,修改servlet添加JSON的处理(要使用json.jar)

java代码

privatevoiddoService(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException{

Strings3=request.getParameter("

car"

try{

JSONObjectjsonObj=newJSONObject(s3);

System.out.println(jsonObj.getString("

model"

));

System.out.println(jsonObj.getInt("

year"

}catch(JSONExceptione){

e.printStackTrace();

response.getWriter().print("

{\"

name\"

:

\"

Violet\"

\"

occupation\"

character\"

}"

同样可以使用JSONObject生成JSON字符串,修改servlet

JSONObjectresultJSON=newJSONObject();

resultJSON.append("

name"

Violet"

.append("

occupation"

developer"

age"

newInteger(22));

System.out.println(resultJSON.toString());

response.getWriter().print(resultJSON.toString());

functionoriginalRequest){

alert(originalRequest.responseText);

varmyobj=originalRequest.responseText.evalJSON(true);

alert(myobj.name);

alert(myobj.age);

●公有属性和私有属性定义的区别(this作用域)。

用var定义的属性是私有的。

我们需要使用this关键字来定义公有的属性

在类中通过this指针添加的属性,都是公有(public)属性。

公有属性指可以被外部访问的属性,

●JavaScript是如何实现继承的?

包括构造函数和原型的继承。

(继承体系和具体实现)

所谓继承,就是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。

JavaScript中包括了冒充对象和原型的继承

对象冒充,是指一个对象冒充另外一个对象来执行其他对象的方法,或者说是一个对象将另外一个对象的方法当作自己的方法来执行。

JavaScript提供了call和apply两个方法来实现这种机制。

call和apply方法所实现的功能是一样的,只是参数形式不同。

functionName.call(object,argument1,argument2,argument3,…);

functionName.apply(object,[argument1,argument2,…]);

在函数或方法中调用call或apply方法后,该函数会被当作指定对象的方法来执行。

见课本P408/409

在使用对象冒充机制来实现继承的时候,子类只是在构造函数中调用了父类的构造函数,但是没有对父类的原型对象作任何处理,这使得定义在父类原型对象中的属性和方法没有被继承。

采用复制原型对象的方式成功解决了对象冒充实现继承的缺陷问题。

见课本P409例子

原型对象prototype:

prototype对象是实现面向对象的一个重要机制。

每个函数对象都具有一个子对象prototype。

而函数也即是类,prototype实际上就是表示了一个类的成员的集合。

当通过new来获取一个类的对象时,prototype对象的成员都会成为实例化对象的成员。

●跨浏览器兼容性,重点关注几个不能在两个浏览器中不能同时运行的方法。

1)使用getElementById代替idName:

在IE中,获得一个元素对象的引用,可以直接使用该元素对象的id,

2)表单元素的引用问题:

在IE下,通过表单获得某个表单元素的引用,可以使用form.item(“itemName”)

3)访问集合对象成员的问题:

在IE中,对集合对象的成员的访问,可以使用圆括号加索引的方式。

4)读取自定义属性的问题:

在IE中可给HTML元素添加一些自定义属性

5)模态窗口的问题:

在IE下,可以使用showModalDialog来创建模态窗口。

原窗口可以给模态窗口传递参数,并接受模态窗口返回的值。

模态窗口在关闭前不能失去焦点。

6)frame的操作问题:

在IE中,通过window.frameId或者window.frameName都可以获得对frame页面window对象的引用

7)innerText的问题:

在IE下可以使用innerText属性来读取或设置一个元素内的文本值

8)对父元素的引用问题:

在IE中对父元素的引用可以使用parentElement和parentNode,但是在Firefox中只能使用parentNode

9)getElementsByName的问题:

在IE中,如果给div添加name属性,然后通过getElementsByName来查找这些div,则getElementsByName不能正常工作

10)outerText的问题:

在IE下,HTML元素有outerText属性,其返回值与innerText属性一样,但是如果改写元素的outerText属性,则元素本身会被文本所替换。

也就是说,当改变一个元素的outerText属性时,实际上是用一个文本节点替换了元素

11)outerHTML的问题:

在IE下,读取元素的outerHTML属性,可以得到包含元素及其子孙元素在内的所有HTML表示。

如果修改元素的outerHTML属性,则会使用一段新的HTML代码替换原有的元素。

替换后,原有的元素会从页面中被删除掉

12)常量的定义问题:

Firefox支持使用const定义常量,但是IE不支持,

13)input元素的type属性读写问题:

在Firefox下,input元素的type属性是可读写的,这个特性使得可以动态改变input元素的形态

●保护机密数据的方法有哪些?

1)https协议----https只保护数据传输的安全,如果数据库有问题同样不能保证安全;

成本高

2)MD5加密----每次采用MD5加密一段数据总会产生相同的结果;

两个不同的资源几乎不可能生成同样的MD5摘要;

不容易被逆推

公钥和私钥----客户端输入密码时,后面附加上随机字符串,然后对结果加密。

随机字符串就是公匙,用户密码就是私匙

3)JavaScript实现----实现这种解决方案需要在客户端和服务器都有一个MD5生成器。

●如何保护服务器端的安全性?

1)设计安全的Web层----采用Faç

ade简化面向服务的架构所暴露的API,只向因特网暴露一组更加简单的入口点,也更容易管理

2)限制对Web数据的访问:

过滤HTTP请求;

使用HTTP会话;

使用加密的HTTP首部信息

●性能的两个衡量指标是什么?

(*:

内存和CPU)

●性能分析的概念及方法有哪些?

性能分析是指详细测量代码执行速度的行为;

程序的执行速度是指该程序最慢的子系统的执行速度。

  方法有:

用1).console.time和console.timeEnd

或2).console.profile和console.profileEnd进行性能分析测试

●优化Ajax的执行速度的方法。

1、优化for循环

2、将DOM节点附加到文档

3、尽量减少点号操作符的使用

内存泄露的概念及JavaScript产生泄漏的原因是什么?

解决的办法是什么?

内存泄露:

申请了内存并在工作完成后没有释放。

产生泄露的原因:

JavaScript是一种内存托管的语言,垃圾回收过程帮助程序员自动地处理内存的分配和释放,但是依然会产生泄露;

即使用完变量忘记解除引用。

解决办法:

使用完后解除引用

●1、JQuery的优点是什么?

1)程序员角度:

简化javascript和ajax编程,能够使程序员从设计和书写繁杂的JS应用中解脱出来,将关注点转向功能需求而非实现细节上,从而提高项目的开发速度。

2)用户角度:

改善了页面视觉效果,增强了与页面的交互性,体验更绚丽的网页物资。

●2、掌握该框架中提供的方法和属性,如选择器,属性节点值的设置和获取。

主要是结合编程考查。

●主流框架有哪些?

YUI、Dojo、mooTools、Prototype、jQuery

●造成中文乱码的原因是什么?

一般哪几种情况会造成中文乱码?

对Java中的某个字符串进行URL编码,其实是在对它的某种字符集编码(非Unicode码)数据进行URL编码,而Java中的字符串是以Unicode字符集编码存在的。

所以,在对Java中的字符串进行URL编码时,若不指定对这个字符串的哪种非Unicode的字符集编码进行URL编码就会出现中文乱码

浏览器对FORM表单中输入的中文字符都会进行URL编码后再传送给WEB服务器。

与请求参数的字符集编码相关的方法getCharacterEncoding方法setCharacterEncoding方法

●解决中文乱码的方法有哪些?

1.网页页面使用utf-8

<

metahttp-equiv="

Content-type"

content="

text/html;

charset=utf-8"

>

2.ajax默认使用utf-8传输数据,但最好使用post,不要使用get

3.数据库也要使用utf-8,在建表时设置好.

4.Tomcat也使用UTF-8:

Eclipse启动Tomcat会修改Tomcat的运行编码环境,从终端启动的又是另一种编码环境,因此Tomcat的编码也需要改

5.HttpServletResponse(request)也要设置编码:

response.setCharacterEncoding("

UTF-8"

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 天文地理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1