w3c之ajax 文档

合集下载

AJAX案例

AJAX案例

div 部分用于显示来自服务器的信息。

当按钮被点击时,它负责调用名为loadXMLDoc() 的函数:<html><body><div id="myDiv"><h3>Let AJAX change this text</h3></div><button type="button" onclick="loadXMLDoc()">Change Content</button></body></html>接下来,在页面的 head 部分添加一个 <script> 标签。

该标签中包含了这个loadXMLDoc() 函数:<head><script type="text/javascript">function loadXMLDoc(){.... AJAX script goes here ...}</script></head>AJAX - 创建 XMLHttpRequest 对象∙Previous Page∙Next PageXMLHttpRequest 是 AJAX 的基础。

XMLHttpRequest 对象所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用ActiveXObject)。

XMLHttpRequest 用于在后台与服务器交换数据。

这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

创建 XMLHttpRequest 对象所有现代浏览器(IE7+、Firefox、Chrome、Safari 以及 Opera)均内建XMLHttpRequest 对象。

创建 XMLHttpRequest 对象的语法:variable=new XMLHttpRequest();老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象:variable=new ActiveXObject("Microsoft.XMLHTTP");为了应对所有的现代浏览器,包括 IE5 和 IE6,请检查浏览器是否支持XMLHttpRequest 对象。

Ajax基础教程

Ajax基础教程

简介本文介绍一种方法,Ajax(Asynchronous JavaScript andXML,提出:Jesse James Garrett),使用它可以构建更为动态和响应更灵敏的Web应用程序。

Ajax是2005年2月才正式提出的一项综合技术,其主要特点是为Web开发提供异步的数据传输和交换方式,可以在不重载(Reload)刷新(Refresh)界面的情况下与服务器进行数据交换。

该方法的关键在于对浏览器端的JavaScript、DHTML和与服务器异步通信的组合。

如果使用得当,这种强大的力量可以使应用程序更加自然和响应灵敏(无刷新更新局部页面),从而提升用户的浏览体验。

术语Ajax用来描述一组技术,它使浏览器可以为用户提供更为自然的浏览体验。

在Ajax之前,Web站点强制用户进入提交/等待/重新显示范例,用户的动作总是与服务器的“思考时间”同步。

Ajax提供与服务器异步通信的能力,从而使用户从请求/响应的循环中解脱出来。

借助于Ajax,可以在用户单击按钮时,使用JavaScript和DHTML(是利用CSS(层叠样式表),JavaScript,HTML等技术而建立的能与访问者产生互动的网页)立即更新UI,并向服务器发出异步请求,以执行更新或查询数据库。

当请求返回时,就可以使用JavaScript和CSS来相应地更新UI,而不是刷新整个页面。

最重要的是,用户甚至不知道浏览器正在与服务器通信:Web站点看起来是即时响应的虽然Ajax所需的基础架构已经出现了一段时间,但直到最近异步请求的真正威力才得到利用。

能够拥有一个响应极其灵敏的Web站点确实激动人心,因为它最终允许开发人员和设计人员使用标准的HTML/CSS/JavaScript堆栈创建“桌面风格的(desktop-like)”可用性。

Google Suggest、Google Maps所有这些Web站点都告诉我们,Web应用程序不必完全依赖于从服务器重新载入页面来向用户呈现更改。

ajax与php结合实现用户登录(详解)

ajax与php结合实现用户登录(详解)
} else {
reto('login.html','登录失败…','2'); }
} else {} ?>
这是 js 页面
// JavaScript Document function createXMLHttpRequest() {
if(window.XMLHttpRequest) {
XMLHttp=new XMLHttpRequest(); }//mozilla 浏览器 else if(window.ActiveXObject) {
onblur="getyzm()"/> <img src="yzm.php" onClick="this.src=this.src+'?'+Math.random();"
style="cursor:pointer" id="img11" /><a onClick="RefreshImage()" style="cursor:pointer" > 看不 清?</a><span id="yz"></span>
//登录界面的用户名 function getuser() {
createXMLHttpRequest(); var id=document.getElementById('user').value;
var url="user.php?pid="+id; //alert(url); XMLHttp.open('GET',url,true); XMLHttp.onreadystatechange=getC1; XMLHttp.send(null); } function getC1() { if(XMLHttp.readyState==4)

两天时间用AJAX写了个无限级的多级联动菜单(ajax+PHP构架)

两天时间用AJAX写了个无限级的多级联动菜单(ajax+PHP构架)

花了两天时间。

研究AJAX,终于独立完成一个无限组的多级菜单联动功能。

主要特点:就是HTML静态页面可以无刷新的与PHP动态角本文件及数据库交互(这也是AJAX的核心目的)。

以下把代码贴出来。

供大家参考指正:ajax.js文件(位于根目录下js子目录)var xmlHttp;function createXmlHttp(){if(window.XMLHttpRequest){xmlHttp=new XMLHttpRequest();}else{xmlHttp=new ActiveXObject("Microsoft.XMLHttp");}}basic_inc.php(位于根目录下/include子目录下)<?php$DB_SERVER="localhost";$DB_NAME="ajax";$DB_USER="root";$DB_PASSWORD="";?>conn.php(位于根目录下/include子目录下)<?phprequire_once("dir_inc.php");require_once($ROOT_DIR."include/basic_inc.php");@ $db=mysql_connect($DB_SERVER,$DB_USER) or die ("faile!".mysql_error());@mysql_select_db($DB_NAME);?>dir_inc.php(位于根目标下/include子目录下)<?php$ROOT_DIR="../";?>select_menu.html(位于根目录下是核心前台文件)<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>select_menu</title><script type="text/javascript" src="js/ajax.js">//这里引用创建xmlHttp对像的文件(对浏览器做过判断)</script><script type="text/javascript">var targetSelId; //申明一个全局变量用来存放当前要操作的对像的IDvar selArray;//申明一个全局数组。

ajax格式及用法

ajax格式及用法

ajax格式及用法Ajax(AsynchronousJavaScriptandXML)是一种使用客户端脚本(通常是JavaScript)与服务器交互的强大技术。

通过Ajax,我们可以实现异步的、基于事件的、基于浏览器的数据请求,从而极大地提高了网页的交互性和响应性。

本篇文章将详细介绍Ajax的格式及用法。

一、Ajax请求格式Ajax请求的基本格式如下:`XMLHttpRequest对象.open(method,url,async,user,password);`其中,method表示请求方法,如GET或POST;url表示请求的URL;async表示是否异步请求,通常为true;user和password用于HTTP认证。

在请求中,我们通常会发送一些数据,这些数据可以以查询字符串的形式附加在URL之后,也可以作为POST请求的数据主体发送。

这些数据可以通过JavaScript对象来创建,或者从XML、JSON或其他数据源获取。

二、Ajax请求示例以下是一个简单的AjaxGET请求示例:`varxhr=newXMLHttpRequest();xhr.open("GET","data.json",true);xhr.onreadystatechange=function(){if(xhr.readyState==4&&xhr.status==200){//请求成功,将返回的数据处理成JSON格式并输出到consolevardata=JSON.parse(xhr.responseText);console.log(data);}};xhr.send();`在这个示例中,我们创建了一个新的XMLHttpRequest对象,并打开了到"data.json"的GET请求。

当请求状态改变时,我们检查请求是否成功,并使用JSON.parse将返回的文本转换为JSON格式。

Ajax中文手册

Ajax中文手册

原作者介绍---1. AJAX介绍AJAX是一种运用JavaScript和可扩展标记语言(XML),在网络浏览器和服务器之间传送或接受数据的技术。

2. AJAX实例AJAX可以用来创建更多交互式的网络应用程序。

3. AJAX源代码简要分析上一章节效果的代码原理4. AJAX与数据库AJAX可以用来和数据端进行数据的交互联通。

5. 使用AJAX制作留言本使用已有的AJAX教程,制作一个属于自己的留言本吧....Ajax实例---AJAX can be used to create more interactive applications.AJAX可以用来创建更多交互式的网络应用程序。

AJAX ExampleAJAX 实例In the AJAX example below we will demonstrate how a web page can communicate with a web server online as a user enters data into a web form. 在以下的AJAX范例中,我们将了解到当用户以网页格式输入数据时一个网页是如何与网络服务器连接的。

Type a Name in the Box Below在下面的框中输入姓名 *实际操作请前往W3SchoolsSuggestions:Example Explained - The HTML Form实例解析-超文本标记语言模式The form above has the following HTML code:以上的范例所含超文本标记语言代码如下:<form>First Name:<input type="text" id="txt1"onkeyup="showHint(this.value)"></form><p>Suggestions: <span id="txtHint"></span></p>As you can see it is just a simple HTML form with a simple input field called "txt1".就如你看到的,它只是一个普通的表单,里面有一称为"txt1"的输入框The paragraph below the form contains a span called "txtHint". The span is used as a placeholder for hints retrieved from the web server.下一段包括了一个称做“txtHint”的SPAN。

Ajax技术在Web开发中的应用

Ajax技术在Web开发中的应用

Ajax技术在Web开发中的应用随着互联网的快速发展,Web应用程序变得越来越复杂,需要更好的交互性、响应性和可用性。

Ajax(Asynchronous JavaScript and XML)技术的出现正好解决了这些问题。

本文将介绍Ajax技术在Web开发中的应用,并分为以下几个部分:1. Ajax技术简介Ajax技术是一种使用异步请求方式进行数据交互的技术,可以在不刷新页面的情况下更新Web页面。

它采用了JavaScript、XML或JSON等技术,可以使Web应用程序具有更好的用户体验和性能。

2. Ajax技术的优势使用Ajax技术可以显著提高Web应用程序的性能和响应速度,因为Ajax可以将数据传送到服务器并且不需要刷新整个页面。

它也可以降低Web服务器的负载,因为它只更新部分页面而不是整个页面。

此外,Ajax还可以使Web应用程序更加交互性,用户可以实时地完成数据交互。

3. Ajax技术的应用3.1 Ajax的登录验证在Web应用程序中,登录验证是不可或缺的。

使用Ajax技术可以使用户在不刷新页面的情况下完成登录验证,减少用户等待的时间。

当用户提交登录信息时,Ajax会向服务器发出异步请求,并根据服务器返回的结果在页面上显示验证结果。

3.2 Ajax的表单验证在Web表单中,Ajax可以用来实现实时的验证和错误提示。

当用户在表单中输入信息时,Ajax会向服务器发出异步请求以验证数据的正确性,并在表单下方显示验证结果。

3.3 Ajax的图片预加载在某些情况下,当用户打开Web页面时,页面需要加载大量图片,这会导致页面的加载速度变慢。

在这种情况下,可以使用Ajax技术实现图片预加载。

使用Ajax技术可以在Web页面在加载时异步加载图片,这样可以减少页面加载时间。

3.4 Ajax的异步文件上传文件上传通常需要刷新整个页面,而使用户等待。

使用Ajax 技术可以异步上传文件,使Web应用程序更具交互性。

ajax的使用方法

ajax的使用方法

ajax的使用方法Ajax的使用方法一、什么是AjaxAjax(Asynchronous JavaScript and XML)是一种用于创建快速动态网页的技术。

它通过在后台与服务器进行数据交换,局部刷新页面,实现无需刷新整个页面的交互效果。

Ajax的核心技术是使用XMLHttpRequest对象与服务器进行异步通信。

二、Ajax的基本使用步骤1. 创建XMLHttpRequest对象在使用Ajax之前,首先需要创建一个XMLHttpRequest对象,用于与服务器进行通信。

可以通过以下代码创建XMLHttpRequest对象:```var xhr = new XMLHttpRequest();```2. 设置请求的参数在与服务器进行通信之前,需要设置请求的参数。

可以使用`xhr.open()`方法设置请求的方式、URL地址和是否异步等参数。

例如:```xhr.open('GET', '/api/data', true);```其中,第一个参数是请求方式(GET或POST),第二个参数是请求的URL地址,第三个参数表示是否异步。

3. 发送请求设置好请求的参数之后,可以通过`xhr.send()`方法发送请求。

例如:```xhr.send();```如果是POST方式的请求,可以在`send()`方法中传递要发送的数据。

4. 监听服务器的响应在发送请求之后,需要监听服务器的响应。

可以通过`xhr.onreadystatechange`事件来监听状态的改变,当状态码为4时表示请求已完成。

可以通过以下代码来监听响应:```xhr.onreadystatechange = function() {if (xhr.readyState === 4 && xhr.status === 200) {// 处理服务器的响应数据}}```其中,`xhr.readyState`表示当前请求的状态,`xhr.status`表示服务器的响应状态码。

ajax的20个参数AJAX的原理,使用,深入了解

ajax的20个参数AJAX的原理,使用,深入了解

ajax的20个参数AJAX的原理,使⽤,深⼊了解AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)⼀,ajax参数1.url:要求为String类型的参数,(默认为当前页地址)发送请求的地址。

2.type:要求为String类型的参数,请求⽅式(post或get)默认为get。

注意其他http请求⽅法,例如put和delete也可以使⽤,但仅部分浏览器⽀持。

3.timeout:要求为Number类型的参数,设置请求超时时间(毫秒)。

此设置将覆盖$.ajaxSetup()⽅法的全局设置。

4.async:要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求。

如果需要发送同步请求,请将此选项设置为false。

注意,同步请求将锁住浏览器,⽤户其他操作必须等待请求完成才可以执⾏。

5.cache:要求为Boolean类型的参数,默认为true(当dataType为script时,默认为false),设置为false将不会从浏览器缓存中加载请求信息。

6.data:要求为Object或String类型的参数,发送到服务器的数据。

如果已经不是字符串,将⾃动转换为字符串格式。

get请求中将附加在url后。

防⽌这种⾃动转换,可以查看 processData选项。

对象必须为key/value格式,例如{foo1:"bar1",foo2:"bar2"}转换为&foo1=bar1&foo2=bar2。

如果是数组,JQuery将⾃动为不同值对应同⼀个名称。

例如{foo:["bar1","bar2"]}转换为&foo=bar1&foo=bar2。

7.dataType:要求为String类型的参数,预期服务器返回的数据类型。

如果不指定,JQuery将⾃动根据http包mime信息返回responseXML或responseText,并作为回调函数参数传递。

ajax中的基本参数

ajax中的基本参数

ajax中的基本参数Ajax(Asynchronous JavaScript and XML)是一种用于创建交互式网页应用程序的技术。

它通过在后台与服务器进行数据交换,实现了无需刷新整个页面的动态更新。

在使用Ajax时,我们需要了解一些基本参数,以便正确地使用和配置Ajax请求。

首先,我们需要了解的是Ajax请求的URL(Uniform Resource Locator)。

URL是用于定位资源的地址,它指定了服务器上的文件或脚本的位置。

在Ajax中,我们需要将URL作为参数传递给Ajax请求函数,以便指定要请求的资源。

例如,如果我们想要请求一个名为"example.php"的服务器脚本,我们可以将URL设置为"example.php"。

接下来,我们需要设置请求的类型。

在Ajax中,常见的请求类型有GET和POST。

GET请求用于从服务器获取数据,而POST请求用于向服务器发送数据。

我们可以通过设置Ajax请求的"type"参数来指定请求的类型。

例如,如果我们想要发送一个GET请求,我们可以将"type"参数设置为"GET"。

除了请求类型,我们还需要设置数据的格式。

在Ajax中,常见的数据格式有JSON和XML。

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于阅读和编写,并且与多种编程语言兼容。

XML(eXtensible Markup Language)是一种标记语言,用于描述和传输结构化的数据。

我们可以通过设置Ajax请求的"dataType"参数来指定数据的格式。

例如,如果我们希望接收JSON格式的数据,我们可以将"dataType"参数设置为"json"。

此外,我们还可以设置其他一些参数来配置Ajax请求。

ajax的数据类型

ajax的数据类型

ajax的数据类型摘要:1.AJAX 简介2.AJAX 数据类型的含义3.AJAX 的数据类型分类4.实际应用中的数据类型示例5.结语正文:一、AJAX 简介AJAX(Asynchronous JavaScript and XML)即异步JavaScript 和XML,是一种用于在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容的技术。

通过使用JavaScript 和XMLHttpRequest 对象,可以实现异步请求服务器数据,使得网页在加载时不需要等待数据完全加载,从而提高用户体验。

二、AJAX 数据类型的含义在AJAX 中,数据类型指的是服务器返回的数据的类型。

这些数据可以是HTML、XML、JSON、纯文本等不同格式的信息。

根据服务器返回的数据类型,AJAX 可以进行相应的处理,例如更新页面内容、处理错误信息等。

三、AJAX 的数据类型分类1.XML(可扩展标记语言):XML 是一种用于描述数据结构的标记语言。

在AJAX 中,服务器返回的XML 数据需要通过XML 解析器进行解析,然后根据解析结果更新页面内容。

2.JSON(JavaScript 对象表示法):JSON 是一种轻量级的数据交换格式,易于阅读和编写。

在AJAX 中,服务器返回的JSON 数据可以直接用JavaScript 进行解析和处理。

3.HTML:服务器返回的HTML 数据可以直接插入到页面的DOM(文档对象模型)中,用于更新页面内容。

4.纯文本:服务器返回的纯文本数据可以用于显示在页面上,或者作为其他处理的输入数据。

四、实际应用中的数据类型示例假设一个网页需要从服务器获取一篇文章的详细内容,服务器返回的数据可能是如下格式的JSON:```json{"title": "文章标题","author": "作者","content": "文章正文"}```在AJAX 请求成功后,JavaScript 可以根据返回的JSON 数据更新页面内容,例如显示文章标题、作者信息等。

ajax的工作流程

ajax的工作流程

ajax的工作流程Ajax的工作流程Ajax(Asynchronous JavaScript and XML)是一种用于创建动态网页的技术,它可以在不刷新整个页面的情况下,通过异步请求和响应数据,实现页面的局部更新。

下面我们来了解一下Ajax的工作流程。

1. 用户发起请求当用户在浏览器中输入网址或点击页面上的链接时,会向服务器发送请求。

这个请求可以是一个普通的HTTP请求,也可以是一个Ajax请求。

2. 服务器响应请求服务器接收到请求后,会根据请求的内容进行处理,并返回相应的数据。

如果是一个普通的HTTP请求,服务器会返回一个完整的HTML页面;如果是一个Ajax请求,服务器会返回一个XML、JSON或纯文本等格式的数据。

3. 客户端接收响应当客户端(浏览器)接收到服务器返回的数据后,会根据数据的格式进行解析。

如果是XML或JSON格式的数据,客户端会使用JavaScript解析器将其转换为JavaScript对象;如果是纯文本格式的数据,客户端会直接使用文本字符串。

4. 客户端更新页面客户端接收到数据后,会根据数据的内容更新页面的相应部分。

这个过程通常是通过JavaScript代码来实现的。

例如,如果是一个商品列表页面,客户端可以使用JavaScript代码将服务器返回的商品数据动态地插入到页面中,从而实现页面的局部更新。

5. 用户交互当页面更新完成后,用户可以与页面进行交互。

例如,用户可以点击某个按钮,触发一个Ajax请求,从而更新页面的另一个部分。

这个过程可以不刷新整个页面,从而提高用户体验。

总结Ajax的工作流程可以概括为:用户发起请求,服务器响应请求,客户端接收响应,客户端更新页面,用户交互。

通过这个过程,Ajax 可以实现页面的局部更新,从而提高用户体验。

同时,Ajax还可以减少服务器的负担,提高网站的性能。

ajax的五个步骤

ajax的五个步骤

ajax的五个步骤AJAX(Asynchronous JavaScript and XML)是一种用于在网页上进行异步通信的技术。

它允许网页通过与服务器进行数据交换,异步地更新页面内容,而无需重新加载整个页面。

以下是AJAX的五个步骤:1. 创建XMLHttpRequest对象:AJAX的核心是XMLHttpRequest对象,它是浏览器提供的内置对象,用于在后台与服务器进行通信。

可以使用以下代码创建一个XMLHttpRequest对象:```javascript```2.设置回调函数:回调函数是在服务器与客户端之间进行通信后执行的函数,用于处理服务器返回的响应。

可以通过onreadystatechange事件来设置回调函数,该事件在XMLHttpRequest对象的状态发生变化时被触发。

常见的回调函数包括onload和onerror。

以下是一个示例:```javascriptif (this.readyState == 4 && this.status == 200)//处理服务器响应的代码}};```3.打开和发送请求:在与服务器进行通信之前,需要调用XMLHttpRequest对象的open方法来指定请求的方式、URL和是否异步。

常见的方法包括GET和POST,URL是目标服务器的地址。

然后可以调用send方法来发送请求。

以下是一个示例:```javascript```4.处理服务器响应:在回调函数中,可以通过XMLHttpRequest对象的responseText或responseXML属性获取服务器返回的响应。

responseText返回的是文本形式的响应,responseXML返回的是XML形式的响应。

根据服务器返回的数据格式,可以使用相应的解析方式对响应进行处理。

5.更新页面内容:根据服务器返回的数据,可以通过JavaScript来更新网页的内容,从而实现异步更新。

AJAX控件整理(完整版)

AJAX控件整理(完整版)

本文由冬_寒季贡献doc文档可能在WAP端浏览体验不佳。

建议您优先选择TXT,或下载源文件到本机查看。

AJAX确实让我没有想到的是 AJAX 居然是在 2007 年才真正走上了历史的舞台, 而且是伴随着一系列的新技术而来.其实,真正让我感叹的不是因为它是一种"新"的技术,而是发展之迅速. 所以,学习 AJAX 是相当有必要的,因为它在微软 Web 开发技术占据着重要的位置: 微软 Web 开发技术: 代码在后端运行,可轻松连接数据库,访问服务器,让用户动态交换数据, 动态产生网页. Silverlight 代码在浏览器端通过 Silverlight Player 运行,可利用 Xaml 代码生成互动的矢量对象和动画,并通过 Javascript 控制 AJAX 在前后端都有代码,可集成前后端的开发技术(Javascript 和 ) ,实现两端之间的非同步通信,数据交换和协作.当然,上面估计是针对 Silverlight1.0 或者 1.1 说的,如今已经发展到 4.0,而且 WPF 似乎也有心往 WEB 插足,而且是相当容易的,因为 Silverlight 本来就是其一个子集. 其实,我还在考虑一个问题,那就是.NET 中的另一个 WCF,似乎与 AJAX"有染" ,估计在未来的发展也不能小觑. 下面开始愉快的学习之旅. 首先介绍由 VS 提供的 AJAX 控件列表: ScriptManager:最常用的一个,而最"没用(不需要你用) "的一个. ScriptManagerProxy:在编写自定义控件的时候使用. Timer:定时回发. UpdatePanel:指定内容为更新区域. UpdaeProgress:显示更新进度条. 显然,只有这几个控件是不能满足我们的要求的,下面介绍AJAX ControlToolkit 中的控件列表: Accordion:折叠菜单目录AlwaysVisibleControlExtender:始终显示的控件-类似悬浮窗口 AnimationExtender:动画效果控件 AutoCompleteExtender:自动完成功能 Calendar:日历控件 CascadingDropDown:级联菜单控件CollapsiblePanel:折叠面板控件ConfirmButtonExtender:确认按钮DragPanelExtender:可拖拽面板 DropDownExtender:下拉菜单 DropShadowExtender:阴影控件 DynamicPopulateExtender:动态填充控件 FilteredTextBoxExtender:过滤控件HoverMenuExtender:菜单控件MaskedEditExtender:编辑验证控件ModalPapupExtender:具有关机效果的弹出式控件 MutuallyExclusiveCheckBoxExtender:互斥复选框控件NoBot:反BOT 控件NumericUpDownExtender:加减数值控件PagingBulletedListExtender:带项目符号的列表控件 PasswordStrength:密码强度提示控件 PopupControlExtender:弹出式控件 Rating:等级控件 ReorderList:可拖拽数据控件ResizableControlExtender:可伸缩控件RounderCornerExtender:锐化边角控件SilderExtender:滑块控件 TabContainer:选项卡控件 TextBoxWatermarkExtender:文本框水印控件 ToggleButtonExtender:个性化按钮控件 UpdatePanelAnimationExtender:局部刷新动画控件 ValidatorCaloutExtender:验证提醒控件事实上 ControlToolkit 当中的控件我只用过 ConfirmButton 和 Calendar 这两个之外, 好像别的都没用过, 这次主要的目的就是熟悉其他控件的使用. 估计有一些控件也没有多大用途, 在以后估计也没什么地方会用到,所以我都不用担心,你还担心什么呢?呵呵,继续,GO!1.AutoComplete 自动完成控件:功能:该控件实现自动提示,相信大家在上网的时候都遇到过在填写 TextBox 内容的时候,会自动提示以前输入过的数据,这个控件就是这样的功能. 属性: 1.TargetControlID:指定要实现提示功能的控件; 2.ServicePath:WebService 的路径, 提取数据的方法是写在一个 WebService 中的; 3.ServeiceMethod:写在 WebService 中的用于提取数据的方法的名字; 4.MinimumPrefixLength:用来设置用户输入多少字母才出现提示效果;pletionSetCount:设置提示数据的行数;pletionInterval:从服务器获取书的时间间隔,单位是毫秒.似乎去 100 很合适呵呵,在使用这个控件的时候,不适用控件之前就有自动提示功能,使用了之后反而没有了,而且添加控件之后会出现一个编译错误.需"Add AutoComplete page method"添加自动完成页的方法.如果采用这种方法,可以在该页的.cs 文件中创建如下代码:[System.Web.Services.WebMethodAttribute(),System.Web.Script.Services.ScriptMet hodAttribute()]//由于要在客户端调用web服务器public static string[] GetCompletionList1(string prefixText, int count, string contextKey){ return default(string[]); }然后,我们就可以使用一个文件来存放要自动提示的字符串,编写代码访问并返回. 当然,一种更常用的方法是单独建立一个Web服务,在里面添加该方法.需在其前面添加[System.Web.Script.Services.ScriptService] 在网上摘录的一个该方法的完整代码如下: [System.Web.Script.Services.ScriptService] public class AutoComplete : System.Web.Services.WebService { public AutoComplete() { //Uncomment the following line if using designed components //InitializeComponent(); } private static string[] autoCompleteWordList = null; 在 [WebMethod]//这里就是提取自动提示字符串的方法, ServeiceMethod中调用public string[] GetCompleteList(string prefixText, int count) { if (autoCompleteWordList == null) { string[] temp = File.ReadAllLines(Server.MapPath("~/App_data/CompleteList.txt"));Array.Sort(temp,new CaseInsensitiveComparer()); autoCompleteWordList = temp; } int index = Array.BinarySearch(autoCompleteWordList,prefixText,new CaseInsensitiveComparer()); if (index < 0) { index = ~index; } int matchingCount; for (matchingCount = 0; matchingCount < count && index + matchingCount < autoCompleteWordList.Length; matchingCount++) { if (!autoCompleteWordList[index + matchingCount].StartsWith(prefixText, StringComparison.CurrentCultureIgnoreCase)) { break; }} string[] returnValue = new string[matchingCount]; if (matchingCount > 0) { Array.Copy(autoCompleteWordList,index,returnValue,0,matchingCount); } return returnValue; }2.FilteredTextBox 过滤控件功能:过滤文本框中指定的内容,用于防止用户输入不合法的字符.属性:1. TargetControlID:被控制文本的 ID2. FilterType:过滤类型,提供 4 中类型.可以使用", "间隔设置多种类型3. ValidChars: FilterType 的属性包含当 "Custom" 时, 此属性有效, 表示有效的字符.3.MaskedEdit 编辑验证控件MaskedEditValidator MaskedEditExtender功能:用来设置文本框显示时的一些格式.属性:1. Mask:类似正则表达式2. MessageValidatorTip:是否提示验证信息3. OnFocusCssClass:当被验证的控件获取焦点时,应用的样式4. OnInvalidCssClass:当被验证的控件验证失败时,应用的样式5. MaskType:验证类型,提供四种:None,Number,Date 和Time6. InputDirection:文本输入方向7. AcceptNegative:是否接受负数的符号"-"8. DisplayMoney:显示金额符号的位置9. PromptCharacter:未输入完时的提示字符. 一般包含两个控件同时使用!另一个参考验证控件.4. PasswordStrength 密码强度提示控件功能:在用户输入密码的时候,密码在文本框后面会有一个提示,说明用户输入密码的强度.属性:DisplayPosition:提示信息显示的位置StrengthIndicatorType:强度提示方式,文本和进度条PreferredPasswordLength:最合适的密码长度PrefixText:提示信息的前缀TextCssClass:提示信息的样式MinimumNumbericCharacters:密码中最少要包含的数字个数MinimumSymbolCharacters:密码中最少要包含的特殊字符个数RequiresUpperAndLowerCaseCharacters:是否要求大小写混合TextStrengthDescriptions:密码强度的提示信息内容,最少 2 个,最多 10 个,排列顺序由弱到强CalculationWeightings:4 种类型的衡量标准BarBorderCssClass:提示进度条样式HelpStatusLabelID:帮助信息 IDHelpHandPosition:帮助信息的位置5. TextBoxWatermark 文本水印控件功能:当文本中没有数据时,可以使用非常特殊的样式填充在文本框中,当用户开始输入内容时, 这些特色样式自然消失. 当用户没有输入内容, 文本框失去焦点后, 又出现该样式.属性:WatermarkText:水印效果提示的文本WatermarkCssClass:水印效果应用的样式6. ValidatorCallout 验证提醒控件功能:验证未通过时,弹出一个类似模式对话框的小窗口,提醒用户发生的错误. 更加醒目的验证方式!属性:Width:弹出式信息的宽度WarmingIconImageUrl:弹出信息中的经过图片地址CloseImageUrl:弹出信息中使用的关闭图片地址7. HoverMenu 菜单控件功能:使一些菜单该出现时才出现,当鼠标移动到指定地点时不会影响其他元素属性:PopupControlID:作为弹出式菜单的控件 IDHoverCssClass:鼠标滑过时的样式PopupPosition:弹出式菜单坐在的位置OffsetX:菜单举例目标控件的位置--横坐标OffsetY:纵坐标PopDelay:弹出菜单的延迟时间实例: 实例:HoverMenu 控件可实现简单的弹出菜单效果参考网站:/zh-cn/dd553520.aspx用 Repeater 控件从数据库中取出数据,在 ItemTemplate 模板中使用 PopupControl 控件,PopupControlID 指向一个弹出式菜单面板,这个弹出式面板我由Panel 改为HyperLink. 这里出现一个小问题, 就是鼠标放在弹出式面板上, 弹出式面板会跳动, 不是呆在鼠标指定的那个地方.8. PopupControl 弹出式控件功能:弹出任意类型的控件,不管是服务器控件还是 Html 控件属性:弹出式菜单属性均相似,见上.9. Accordion(手风琴)折叠菜单目录功能:将一组功能相似,任务相同的内容放在不同的选项卡中,然后通过选项卡的 Header 实现各组内容的查看.我们可以逐一地编写 Accordion 中的 AccordionPane 控件, 每个 AccordionPane 控件即代表一个可折叠的面板. 还可以使用数据绑定的方式, 分别为其指定标题和内容区域的绑定模板以及数据源,让 中的数据绑定为我们自动生成其中的若干个折叠面板. Accordion 还能够把当前正处于展开状态的面板自动记录下来, 并在页面回送之后恢复其提交前的样式. 属性:SelectedIndex:在 Accordion 中设计的多个 Pane,此属性用来判断当前选择的是哪个PaneHeaderCssClass: AutoSize: 设计Accordion 中Pane 的显示方式, 主要有 3 种:None, Limit 和 Fill; None 可以无限制收缩,Limit 限制内容的高度,超出部分出现滚动条,Fill 表示和设置的高度一致,超出部分不会显示.FadeTransitions:是否使用透明样式的褪色特效TransitionDuration:特效时间间隔,单位为毫秒FramesPerSecond:帧/秒,折叠特效的速度Panes:是 Accordition 内容所在,其包装必须是"AccordionPane"控件,可以是多个Panes 和AccordionPane 表声明Accordion 控件时的常用属性标签属性标签名SelectedIndex HeaderCssClass ContentCssClass AutoSize 描述该控件初次加载时展开的 AccordionPane 面板的索引值该 Accordion 中包含的所有AccordionPane 面板的标题区域所应用的CSS Class 该Accordion 中包含的所有AccordionPane 面板的内容区域所应用的CSS Class 在展开具有不同高度的AccordionPane 面板时, Accordion 的该总高度的变化方式.可选如下 3 个值: r None:该 Accordion 将随着当前展开的 AccordionPane 面板的高度自由伸长/缩短 r Limit:该Accordion 将随着当前展开的 AccordionPane 面板的高度自由伸长/缩短,不过最高不会超过 Accordion 的Height 属性设定值.若是其内容高度超过了 Height 属性设定值,则将自动显示滚动条r Fill:该 Accordion 的高度将固定为 Height 属性的设定值, 不随当前展开的不同高度的AccordionPane 面板而变化.若是某个 AccordionPane 的内容高度超过了 Height 属性设定值, 则将自动显示滚动条 FadeTransitions TransitionDurati on FramesPerSecond DataSourceID<ContentTemplate > 若该属性值设置为 true,则在切换当前展开的 AccordionPane 面板时,将带有淡入淡出效果展开/折叠一个 AccordionPane 面板的过程所花费的时间,单位为毫秒播放展开/折叠 AccordionPane 面板动画的每秒钟帧数页面中某个 DataSource 控件的 ID,用于通过数据绑定自动生成 AccordionPane 面板该标签内将包含一系列的标签, 即 Accordion- Pane 的声明,用来表示 Accordion 中包含的面板在使用数据绑定功能自动生成 AccordionPane 面板时, 该标签内将定义每个面板的标题区域中的内容模板在使用数据绑定功能自动生成 AccordionPane 面板时, 该标签内将定义每个面板的正文区域中的内容模板需要注意的是 FadeTransitions 和 FramesPerSecond 属性.自然,将 FadeTransitions 设置为 true 将让面板展开/折叠的过程显得非常酷, 且将 FramesPerSecond 属性值设置得比较高也会让展开/折叠的动画变得更加平滑, 但这样也同时会加重客户端程序执行时的负担, 我们应该综合考虑各种情况合理地配置这两个属性. 一般来讲, 若是 Accordion 的大小适中, 且其中也没有太多的 AccordionPane 面板,那么可以将 FadeTransitions 设置为true(即显示淡入淡出效果),并将 FramesPerSecond 设置为 40(即每秒 40 帧)左右,让动画效果更加流畅眩目.而若是对于较大的,甚至全屏的 Accordion,或是其中包含了许多个复杂的AccordionPane 面板, 那么就应该将FadeTransitions 设置为false, 且将FramesPer Second 设置为 25 左右,尽可能地避免对客户端执行效率产生过多的影响. 与DataSourceID 属性相关的还有 DataSource 和 DataMember 属性,分别表示将绑定到该控件上的数据源(一般在代码中设置)和DataSource 中数据成员的名称. DataSourceID,DataSource 和 DataMember 属性是 中每一个支持模板化数据绑定的控件都包含的.DropDown 下拉菜单控件功能:为任意控件指定下拉菜单,这个下拉菜单必须存在.属性:略为按钮等控件执行下拉列表实现快速选择.10.CollapsiblePanel 折叠面板控件功能:折叠面板就是实现一个 Panel 的显示和隐藏,可以定义 Panel 的样式. 属性:CollapsedSize:折叠后的尺寸ExpandedSize:伸展后的尺寸 Collapsed:默认打开页面时,Panel 是否处于折叠状态ScrollContents:是否在 Panel 中显示滚动条ExpandDirection:伸展方向,水平或垂直CollapseControlID/ExpandControlID:该属性指定控制折叠/扩展的控件ID.d)TextLabelID:指定一个控件,可以在扩展或折叠Panel 时显示CollapsedText/ExpandedText 中的内容. CollapasedText/ExpandedText:Panel 折叠/扩展时的文本. Collapsed:指定页面导入时 Panel 是折叠还是扩展. ImageControlID:指定一个控件,在扩展时显示 ExpandedImage 中的图像;在折叠时显示 CollapsedImage 中的图像. ExpandedImage/CollapsedImage:在扩展/折叠时显示不同的图像. SuppressPostBack:禁止回传. 将 Panel 中的内容显示或隐藏. 使用两个 Panel, 一个 Panel 用于扩展控件的 ID, 另一个用于折叠控件的 ID.11.DragPanel 可拖曳面板控件功能:这是一个简单的 Ajax 控件,不支持拖拽前和拖拽后的事件操作属性:DragHandleID:实现拖拽的控件,即当拖拽DragHandleID 时,实际上移动的是TargetControlID这个控件最好配合样式表使用.12.Tabs 选项卡控件功能:在 C/S 中,有各种选项卡控件,B/S 中没有,要在一个页面显示多组内容, 可以通过 CSS 样式来显示和隐藏以达到选项卡的效果.属性:OnClientActiveTabChanged:单击选项卡标题时触发的事件ActiveTabIndex:默认显示的选项卡ScrollBars:是否显示滚动条这个控件非常棒哦!13.Animation 动画控件功能:显示小动画属性:OnLoad:页面加载时触发OnClick:单击控件时触发onMouseOver:鼠标滑过时触发OnMouseOut:鼠标移走时触发 OnHoverOver:与 OnMouseOver 类似OnHoverOut:与 OnMouseOut 类似"Fade Animation"的属性主要有 4 个: l duration:动画效果的时间间隔. l Fps:帧/秒的显示速度. l maximumOpacity:最大透明度. l minimumOpacity:最小透明度. 假如学习了 WPF 或者 Silverlight 的话,使用 Expression Blend 制作的时间帧动画,就很容易理解了.说明一下:似乎 AJAX 的这些控件,和 WPF 已经在接近了,但还是相差甚远哈,有这种趋势而已.14.DropShadow 阴影控件功能:实现阴影属性:Opacity:透明度,最大值为 1,不透明,默认值为 0.5Rounded:是否锐化目标控件边角TrackPosition:追随目标控件的位置,此属性一般应用在控件被拖动的时候15.RounderCorners 锐化边角控件功能:该控件同样其锐化作用,缺点是没有阴影效果,有点事可以锐化 4 个边角的任意一个或多个.属性:Radius:锐化幅度Corners:锐化的边角,All 表示所有边角16.ToggleButton 个性化按钮控件功能: 该控件只能应用于 CheckBox, 主要功能是以自定义图片的形式显示复选框的选中和未选中状态.属性:CheckedImageAlternateText:选中状态下的提示文本UnCheckedImageAltenateText:未选中状态下的提示文本UncheckedImageUrl:未选中状态下显示图片地址CheckedImageUrl:选中状态下显示的图片地址DisabledCheckedImageUrl:控件为不可用状态时,默认时要显示的图片17.UpdatePanelAnimation 局部刷新动画控件功能:该控件用来装饰 UpdatePanel 更新的效果,提供对 UpdatePanel 更新时和更新后的特效,并允许用户自定义这些特效.Animation 控件不仅仅是一个控件 ,它是一个可向控件添加动画的框架.属性:OnUpdating:更新时应用的特效OnUpdated:更新后应用的特效18.AlwaysVisibleControl 始终显示控件功能:创建一个始终显示的内容,通常用来显示菜单,消息和广告等.属性:VerticalSide:显示控件时垂直位置,上中下VerticalOffset:显示控件时与最上方的距离,相对坐标HorizontalSide:显示控件的水平位置:左中右HorizontalOffset:显示控件与最左侧的距离,相对坐标 ScrollEffectDuration:当滚动条滚动时,显示控件的显示延迟,默认时 0.1 秒ProfileBindings:要绑定的个性化配置的属性19.Calendar 日历控件功能:可以选择到文本框中的日历控件属性:Format:日历显示的日期格式PopupButtonID:当日期是通过选择某个按钮弹出的时候可以使用 PopupButtonID 指向一幅图片,放在文本框后面,点击图片就可以弹出日历控件选择日期.呵呵,由于是测试,放置了一幅大的图片.20.CascadingDropDown 级联下拉列表控件功能:级联菜单,当第一级可用时,第二级可用,第二级可用时,第三级不可用, 依次类推. Category:当前下拉框的类别PromptText:当下拉框无数据和未选中数据时,给用户提示. 在使用此控件的时候,由于涉及到数据库,故按提交按钮需验证,如果将EnableEventValidation="false",也就是不验证可以解决这个问题,但是这样就不安全了.这一点需要注意. Category需要同从数据库中取出数据类别相同,这里是Xml数据,也就是要对应节点,在此WEB服务中的Hierarchy即存储相应类别和节点.21.Confirm 确认按钮控件主要属性设置时ConfirmText,即显示弹出消息框的内容.22.DynamicPopulate 动态填充控件允许程序在运行的过程中,更改指定控件的内容,类似于"document.getElementById("ControlID").value="Selected Control""语句.这个控件是利用 createElement 和 appendChild 等 DOM 方法实现的.属性:BehaviorID:行为 ID,用于在客户端获取 Ajax 控件TargetControlID:需要动态填充的内容控件ClearContentsDuringUpdate:在更新时是否情况内容 ServicePath:获取数据需要使用的 Web 服务ServiceMethod:获取数据的方法UpdatingCssClass:更新过程中使用的样式ContextKey:上下文关键字,通过此关键字,判断返回的数据类型CustomScript:一段自定义的脚本,必须为能被格式化的字符串PopulateTriggerControlID:引发填充事件的控件23.ModalPopup 具有关机效果的弹出式控件该弹出式控件最大的特色就是具备"模式"窗口风格,在 B/S 应用中,使用这样风格的好处是,当用户选择这个设置时,其他内容都会受到保护.使用这种方法,处理弹出窗口中的事件是一件很繁琐的事情,由于不能直接在弹出控件中添加服务器端方法,因为添加了也没有反应,估计要想实现事件需在客户端使用Javascript 来完成.在 DynamicPopulateExtender.aspx 实例中可以看出.24.MutuallyExclusiveCheckBox 互斥复选框控件功能:复选框实现多个项目选择,但是项目之间可以含有互斥项.含有相同 Key 的为同一组,同一组之间是互斥的,但与不同 Key 之间的组,是可以同时选择的.属性:TargetID:被控制的复选框.Key:区分互斥复选框的键值.同时使用多个 BulletedList 控件也可以实现此功能!25.NoBot 反 Bot 控件功能:防止自动提交程序的运行.属性:OnGenerateChallengeAndResponse:自定义的相应事件,用于反 BOTResponseMinimumDelaySeconds:响应的最小延迟,单位为秒26.NumbericUpDown 加减数值控件功能:为一个文本框添加上下按钮,当单击这个按钮时,可以实现数字的加减,同时也可以提供静态数据,实现数据的上下选择.属性:Width:TextBox 显示时的宽度,默认为 0,不显示目标 TextBoxRefValues:进行上下操作的一些静态值TargetButtonDownID:进行"下"操作的按钮TargetButtonUpID:进行"上"操作的按钮在.cs 页面中直接使用 Page Method,不是在单独的 asmx 文件中使用: 注释掉会[System.Web.Services.WebMethod](自己添加) 或者[System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()](自动生成)会弹出错误框.还需要注意方法中的参数的数据类型.27.PagingBulletedList 带项目符号的列表控件功能:显示一些列表项,主要的扩展对象是 BulletedList 控件.属性:ClientSort:是否在客户端进行排序IndexSize:标题索引的字符个数Separator:标题索引的间隔符将相同列表开始的 IndexSize 个字符作为标题,点击之后展开所有以此标题为首的列表项.在使用服务器端代码来改变 IndexSize 的值时,使用 TextBox 时需添加 AutoPostBack 属性,但是这样会出现频繁刷新的问题.如果使用 UpdatePanel 来实现呢,使用触发的时候,也会遇到根本不访问服务器端代码的问题.这种的方案是:使用一个 Button 控件在UpdatePanel 中触发,注意触发方式采用PostBackTrigger,不要采用异步触发AsyncPostBackTriger(注意,Button 控件本来就会导致会发,所以在 UpdatePanel 中也没有必要添加触发器的,说得更狠一点,就是不需要 UpdatePanel 也可以,我使用触发器,不过是为了熟悉它而已.呵呵,但是这样实现的就不是使用局部刷新了.. ).所以,最佳解决方案,还是在客户端用 Javascript 来实现.28.Rating 显示等级控件功能:显示等级信息,可以以图片的形式显示. 属性:CurrentRating - 所使用的初始评分 MaxRating - 最高评分 EmptyStarCssClass - 评分项("星号")为空时使用的 CSS 类 FilledStarCssClass - 评分项("星号")已填写时使用的 CSS 类 StarCssClass - 为一个 visible stat 使用的 CSS 类 WaitingStarCssClass - 将星级评分发送回服务器时使用的 CSS 类 AutoPostBack :当单击"评级"这个控件时,是否回送.默认不回送. OnChanged :在完成评级之后,触发"客户端回调"事件以便执行某一段程序代码.准备两种图像,一种用于显示填写过的评分项,另一种显示空白评分项29.ReorderList 可拖曳数据控件功能: ReorderList 控件用来显示数据, 其功能相当于GridView, DataList 和Repeater 等,都可以绑定数据,并支持各种模板.ReorderList 的优势在于,其允许用户自定义行的显示,即用户可以拖行到任意位置,同时还支持客户端的排序,这样可以减少回调,提高性能.ReorderList 控件时的常用属性标签属性标签名 DataSourceID DataKeyField 描述页面中某个 DataSource 控件的 ID, 用于通过数据绑定自动生成列表项目数据源中键字段的名称,该字段中的值应该在所在记录中是唯一且不变的,ReorderList 将用条目中该字段的值作为记录的标志,将在更新/删除中使用是否允许用户对列表中的项目进行重新排序,若指定了<ReorderTemplate>,则该属性将自动设置为 true 数据源中作为排序字段的名称.在用户进行重新排序之后,ReorderList 将自动修改需要更新的条目的该字段条目的可拖动区域与条目之间的相对位置关系,可选 Top(上部),Bottom(下部),Left(左边)和Right(右边) 若该属性值设置为 true,则当用户对列表中的项目进行重新排序之后,将自动引发一次整页的回送;否则将以异步回调的方式向服务器端发送请求列表中当前处于编辑模式下的项目的索引值若该属性值为 true,则列表中将显示出一个用来添加新条目的特殊行,即模板中定义的内容插入的新行在整个列表中的位置,可选 Beginning (第一项)或End(最后一项) 该标签内将定义列表中普通条目的模板该标签内将定义列表条目中可拖放区域的模板.用户只有在该区域中拖放才能够对该条目进行重排序该标签内将定义拖动列表条目时列表中可投放区域AllowReorderSortOrderFieldDragHandleAlignmen t PostBackOnReorderEditItemIndex ShowInsertItemItemInsertLocation <DragHandleTemplat e> <ReorderTemplate>的模板 <EditItemTemplate>该标签内将定义用来添加新条目的特殊行的模板该标签内将定义处于编辑状态中的列表条目的模板该标签内将定义空列表的模板.若列表中没有任何条目,则将显示该模板中定义的内容对于 PostBackOnReorder 属性,若该 ReorderList 控件将只提供对项目重新排序的功能,则应该将其设置为 false,这样可以充分利用 ReorderList 自带的异步回调功能.若是该ReorderList 控件同样支持对条目的添加,删除,编辑等复杂功能,则应该将PostBackOn- Reorder 属性设置为 true,并用 UpdatePane l 包围该 ReorderList,以期得到Ajax 的异步回送功能.使用这个真难拖动,真是太难了!这让我想起了 WebParts,可惜我原本打算在那上面花点功夫的,但是没有,真是遗憾.好不容易实现了拖动吧,费了好大劲都不能拖动一次, 只有当你自己做练习的时候才知道,估计这个以后不怎么使用.30.ResizableControl 可伸缩控件功能:该控件可以改变其他控件的高度和宽度.属性:HandleCssClass:在控件中支持改变的位置所使用的样式ResizableCssClass:改变控件大小时应用的样式MinmumWidth/MaxmumWidth/MaxmumHeight/MinmumHeight:允许控件伸缩的最小,最大宽度和高度OnClientResize:控件伸缩后,客户端触发的事件 HandleOffsetX/HandleOffsetY:在控件中支持改变的位置(X/Y 位置) ,一般是控件的右下角相对坐标这个控件实现的是伸缩,不是放大和缩小.也就是只能看见你整个图片的局部,你可以拖动使得像窗口那样改变窗口大小来查看内容,注意内容大小时没有改变的.31.Slider 滑块控件功能:该控件可以个性化地显示当前的数字值,用户还可以通过文本框,控制滑块的数据值.属性:TargetControlID:该控件的目标控件,即其要扩展的控件. BoundControlID:当改变值时,显示数据的控件. EnableHandleAnimation:当改变值时滑块是否有动画效果.值为 True, 则有 Animation 效果;值为 False,则没有 Animation 效果. RaiseChangeOnlyOnMouseUp: 设定是否只有在鼠标离开的时候才触发事件.值为 True,则是;否则,不是.总结:由于 AJAX(Asynchronous JavaScript and XML)技术是基于 JavaScript 和 XML,实现的是同客户端的交互让用户没有感觉(呵呵,自己这么理解的,其实有感觉)所以,一些代码虽然可以在服务器端处理,但是更好的方式是在客户端使用 JavaScript 来处理.至于 XML,我觉得可以不讲其单纯的理解为 XML 数据,而就是数据.从整理的 AJAX 控件就可以看出来,有好多个控件可以通过 Web Service 同服务器端通信,实现数据的交换. 还有一点需要注意的是:在同一页面使用过多的 AJAX 控件,会导致性能下降,迫使浏览器弹出对话框: 不论怎样,关于 AJAX 控件的使用,总算整理完了.虽然,有的很粗糙,而且更多的我都是从我的角度来理解整理的,很多都是从网上查找整理出来的,代码都是参照别人的代码,亲自实现了的.。

Ajax课程设计课本实验报告

Ajax课程设计课本实验报告

《Ajax技术》实验报告班级:学号:学生姓名:实验地点:1S401日期:2016-X-X实验项目(三):Ajax编程实验1.实验内容1.课本P113 实例。

【将运行结果截图】2.课本P127 实例。

【将运行结果截图】(以做)3.课本P140 实例。

【将运行结果截图】(以做)4.课本P145 实例。

【将运行结果截图】5. 课本P149 制作图片轮显效果实例。

【将运行结果截图】(以做)6. 课本P150 实例制作图片放大效果。

【将运行结果截图】(以做)7. 课本习题P154第9题。

【将运行结果截图】8. 课本习题P154第11题。

【将运行结果截图】2.实验目的1.掌握JavaScript中流程控制语句的使用方法。

2.掌握JavaScript中对话框的使用方法。

3.掌握内置对象和浏览器对象使用方法。

4.了解 AJAX的工作原理。

5.了解 JQuery的基本使用方法。

3.实验要求1.了解流程控制语句的种类。

2.了解对话框的类型。

3.了解内置对象的属性和方法。

4.了解浏览器对象的属性和方法。

5.了解常用方法和函数的应用。

6.能掌握用传统的方法异步获取数据;7.能使用 JQuery 的 load 方法异步获取数据;8.掌握自动校验的表单;9.掌握JQuery 制作自动提示的文本框。

4.程序清单(1)p113图片遍历<body><script src="jquery.min.js"></script><script>$(function(){$("img").each(function(i){this.src = "images" +(i+1) + ".jpg";this.title="这是第" +(i+1) +"幅图";});});</script><img /> <img /> <img />(2)p127插入删除行操作<body><script src="jquery.min.js"></script><script>$(function(){$("#start").click(function(){$("#make").prepend('<tr><td>前面插入的行</td><td><a href="javascript:;" onclick="del(this)">删除此行</a></td></tr>');});$("#endp").click(function(){$("#make").append('<tr><td>末尾插入的行</td><td><a href="javascript:;" onclick="del(this)">删除此行</a></td></tr>');});});function del(obj){$(obj).parent().parent().remove();}</script><table width="232" border="1" cellpadding="3" cellspacing="1" id="make"><tr><td width="98">第一行</td><td><a href="javascript:;" onclick="del(this)">删除此行</a></td></tr><tr><td>第二行</td><td><a href="javascript:;" onclick="del(this)">删除此行</a></td></tr><tr><td>第三行</td><td><a href="javascript:;" onclick="del(this)">删除此行</a></td></tr></table><input type="button" id="start" value="在前面插入行"/><input type="button" id="endp" value="在末尾插入行"/></body>(3)p140移进来,显示坐标<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>move</title><style>.entered{font-size:36px;}#test{border:2px solid red;background:#fdd;width:150px;height:150px;}</style></head><body><script src="jquery.min.js"></script>$(function(){$("#test").bind("mouseenter mouseleave",function(event){ $(this).toggleClass("entered");alert("鼠标指针位于("+event.pageX+","+event.pageY+")");});$(document).click(function(){$("#test").unbind('mouseenter mouseleave');});});</script><div id="test">移进来!</div></body>(4)p145渐变背景色的下拉菜单<body><style type="text/css">u1{list-style:none;margin:0;padding:0;}#accordion{width:200px;}#accordion li{border-bottom:1px solid #ED9F9E;}#accordion a{font-size:14px;color:#ffffff;text-decoration:none;display:block;padding:5px 5px 5px 0.5em;border-left:12px solid #711515;border-right:1px solid #711515;background-color:#c11136;height:1em;}#accordion a:hover{background-color:#990020;color:#ffff00;}#accordion li ul li{border-top:1px solid #ED9F9E;}#accordion li ul li a{padding:3px 3px 3px 0.5em;border-left:28px solid #a71f1f;border-right:1px solid #711515;background-color:#e85070;}#accordion li ul li a :hover{background-color:#c2425d;color:#ffff00;}</style><script src="jquery.min.js"></script><script>$(document).ready(function(){$("#accordion>li>a + *:not(:first)").hide();$("#accordion>li>a").click(function(){$(this).parent().parent().each(function(){$(">li>a+ *",this).slideUp();});$("+ *",this).slideDown();});});</script><ul id="accordion"><li><a href="#">学院简介</a><ul><li><a href="">学院概括</a></li><li><a href="">历史沿革</a></li> ……………………</ul></li><li><a href="#">本科教学</a><ul><li><a href="">专业介绍</a></li><li><a href="">精品课程</a></li> ……………………</ul></li><li><a href="#">科学研究</a><ul><li><a href="">科技处</a></li><li><a href="">2</a></li><li><a href="">3</a></li>……………………</ul></li><li><a href="#">招生信息</a><ul><li><a href="">专业介绍</a></li><li><a href="">精品课程</a></li>……………………</ul></li></body>(5)p149图片轮显<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>轮显</title><br /><style type="text/css">img{border:0px;}.imgBox{overflow:hidden;width:282px;height:176px;}.imgs a{display:block;width:282px;height:164px;}.clickButton{background-color:#999999;width:282px;height:12px;position:relative;top:-1px;_top:-5px;}.clickButton div{ float:right;}.clickButton a{background-color:#666;border-left:#ccc 1px solid;line-height:12px;height:12px;font-size:10px;float:left;padding:0 7px;text-decoration:none;color:#fff;}.clickButton a.active,.clickButton a:hover{background-color:#d34600;}</style></head><body><script src="jquery.min.js"></script><script>$(document).ready(function(){$(".clickButton a").attr("href","javascript:return false;");$(".clickButton a").each(function(index){$(this).click(function(){changeImage(this,index);});});autoChangeImage();});function autoChangeImage(){for(var i=0;i<=100;i++){window.setTimeout("clickButton("+(i%5+1)+")",i*2000);}}function clickButton(index){$(".clickButton a:nth-child("+index+")").click();}function changeImage(element,index){vararryImgs=["images/01.jpg","images/02.jpg","images/03.jpg","images/04.jpg","images/05.j pg"];$(".clickButton a").removeClass("active");$(element).addClass("active");$(".imgs img").attr("src",arryImgs[index]);}</script><div class="imgBox"><div class="imgs"><a href="#"><img id="pic" src="0.jpg" width="282" height="164" /></a></div><div class="clickButton"><div><a class="active" href="">1</a><a class="" href="">2</a><a class="" href="">3</a><a class="" href="">4</a><a class="" href="">5</a></div></div></div></body>(6)p153放大镜<head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>jquery放大镜</title><script src="jquery.min.js"></script><script src="jquery.jqzoom.js"></script><link href="jqzoom.css" rel="stylesheet" type="text/css"/><script type="text/javascript">$(document).ready(function(){$(".jqzoom").jqueryzoom({xzoom:320,yzoom:240,offset:20,position:'right'});});</script></head><body><div style="font-size:12px">佳能数码相机欣赏(请把鼠标放到图片上)<div class="jqzoom"><img src="small.jpg" alt="相机展示" border="1" jqimg="big.jpg" /> </div></div></body>(7)课本习题P154第9题<body><script src="jquery.min.js"></script><script>$(function(){$("p").click(function(){alert($(this).text());});});</script><p>Hello JavaScript!</p></body>(8)课本习题P154第11题<title>xiti</title><script src="jquery.min.js"></script><script type="text/javascript">window.onload=function(){var K=0;var items=document.getElementsByTagName("p");for(i=0;i<items.length;i++){items[i].onclick=function(){if(K!=0){alert("欢迎您再次访问");}if(K==0){alert("您是第一次访问");K=1;}}}}</script></head><body><p>测试一</p><p>测试二</p><p>测试三</p></body>5.实验结果(1)p113图片遍历截图(2)p127插入删除行操作截图(3)p140移进来,显示坐标截图(4)p145渐变背景色的下拉菜单截图(5)p149图片轮显截图(6)p153放大镜截图(7)课本习题P154第9题截图(7)课本习题P154第11题截图6.实验总结此次实验收获还是很多的,通过该实验,我不仅掌握了jquery的基本使用以及javascript 的流程控制语句如何使用,还学会了内置对象和浏览器对象的使用方法。

AJAX(用法总结-精华版)

AJAX(用法总结-精华版)

1、ajax是什么?ajax: asynchronous javascript and xml: 异步的javascript和xml。

ajax是一种用来改善用户体验的技术,其本质是利用浏览器内置的一种特殊的对象(XMLHttpRequest)异步(即发送请求时,浏览器不会销毁当前页面,用户可以继续在当前页面做其它的操作)的向服务器发送请求,并且利用服务器返回的数据(不再是一个完整的页面,只是部分的数据,一般使用文本或者xml返回)来部分更新当前页面。

使用ajax技术之后,页面无刷新,并且不打断用户的操作。

2、ajax对象(1)如何获得ajax对象?XMLHttpRequest并没有标准化,要区分浏览器:function getXhr(){var xhr;if(window.XMLHttpRequest){xhr = new XMLHttpRequest(); // 非ie浏览器}else{xhr = new ActiveXObject('Microsoft.XMLHttp'); // ie浏览器}}(2)ajax对象的属性a. onreadystatechange: 绑订一个事件处理函数(即: 注册一个监听器)当ajax对象的readyState值发生了改变(比如,从0-->1),就会产生readystatechange事件。

b. responseText: 获得服务器返回的文本c. responseXML: 获得服务器返回的XML dom对象d. status: 获得状态码e. readyState: 返回ajax对象与服务器通讯的状态。

返回值是一个number 类型的值,不同的值表示不同的含义:0: (为初始化) --> 对象已建立,但是尚未初始化(尚未调用 open方法)1: (初始化) --> 对象已建立,尚未调用send方法2: (发送数据) --> send方法已调用3: (数据传送中) --> 已接受部分数据4: (响应结束) --> 接收了所有的数据(3)ajax编程的基本步骤1) 获取ajax对象(XmlHttpRequest)2)使用 XmlHttpRequest向服务器发送请求3)在服务器端处理请求4)在监听器当中,处理服务器返回的响应1) 获取ajax对象(XmlHttpRequest)var xhr = getXhr();2) 发送请求xhr.open(请求方式, 请求地址, 异步还是同步);请求方式: get/post请求地址:如果是get请求,请求参数要添加到请求地址的后面。

CSUNAjax英文

CSUNAjax英文
– Using HTML Techniques – Using DHTML Accessibility Techniques
▪ Demonstration of techniques ▪ Summary
What is AJAX?
▪ AJAX = Asynchronous JavaScript and XML ▪ Allows incremental update of Web pages. ▪ Built using standard web technologies - HTTP, (X)HTML,
*These issues will not be discussed as they are not specific to accessibility.
Specific Accessibility Issues
▪ Assistive Technology users are not aware of updates
JavaScript and AJAX Accessibility
Becky Gibson Web Accessibility Architect
Agenda
▪ What is AJAX and why do I care? ▪ What are the Issues with AJAX? ▪ How do I make my AJAX applications Accessible?
What are the Issues with AJAX?
▪ User does not know updates will occur. ▪ User does not notice an update. ▪ User can not find the updated information. ▪ Unexpected changes in focus. ▪ Loss of Back button functionality*. ▪ URIs can not be bookmarked*.

ajax中的setRequestHeader设置请求头

ajax中的setRequestHeader设置请求头

ajax中的setRequestHeader设置请求头1、问题引发点:前不久发现⼀个问题: 前端并没有设置请求头信息⾥⾯的Accept-Encoding:gzip...但是在请求头中可以明显的看到Accept-Encoding:gzip, deflate, sdch,并且我尝试修改这个请求头,发现不⽣效;2、XMLHttpRequest对象提供了⼀个设置请求头的⽅法:setRequestHeader,对应的jQuery可以再beforeSend回调⾥⾯设置请求头:$.ajax({type: "GET",url: "test.php",success: function(data) {console.log(data);},beforeSend: function(xhr) {xhr.setRequestHeader("User-Agent", "headertest");}});3、后来看W3C标准⽂档发现,这个请求头不是什么都可以设置的,标准⾥⾯明确规定了以下请求头信息是浏览器控制,开发者不允许设置这些请求头Terminate these steps if header is a case-insensitive match for one of the following headers:Accept-CharsetAccept-EncodingAccess-Control-Request-HeadersAccess-Control-Request-MethodConnectionContent-LengthCookieCookie2DateDNTExpectHostKeep-AliveOriginRefererTETrailerTransfer-EncodingUpgradeUser-AgentVia… or if the start of header is a case-insensitive match for Proxy- or Sec- (including when header is just Proxy- or Sec-).The above headers are controlled by the user agent to let it control those aspects of transport. This guarantees data integrity to some extent. Header names starting with Sec- are not allowed to be set to allow new headers to be minted that are guaranteed not to come from.4、例⼦:testAE.html<!DOCTYPE html><html><head><title>test</title></head><script type="text/javascript" src="./jquery.1.8.1.min.js"></script><body><script type="text/javascript">$.ajax({type: "GET",url: "./testAE.php",success: function(data) {$("body").append(data);},beforeSend: function(xhr) {xhr.setRequestHeader("Accept-Encoding", "testAE");}});</script></body></html>testAE.php<?php/*回传ACCEPT_ENCODING*/echo $_SERVER['HTTP_ACCEPT_ENCODING'];>chrome:ie:控制台:可以看到jQuery也会提⽰你这样设置是不安全的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用户:
onkeyup="ajaxFunction();"
/>
6 / 44
[ajax
下一节介绍 "time.asp" 的脚本,这样我们完整的 AJAX 应用程序就搞定了.
AJAX - 服务器端的脚本
现在,我们要创建可显示当前服务器时间的脚本.
让我们用这段创建 XMLHttpRequest 对象的 JavaScript 来更新一下我们的 "testAjax.htm" 文件:
用户: 时间:
例子解释: 例子解释: 首先声明一个保存 XMLHttpRequest 对象的 xmlHttp 变量.
2 / 44
[ajax
然后使用 XMLHttp=new XMLHttpRequest() 来创建此对象. 这条语句针对 Firefox, Opera 以及 Safari 浏览器. 假如失败,则尝试针对 Internet Explorer 6.0+ 的 xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"),假如 也不成功,则尝试针对 Internet Explorer 5.5+ 的 xmlHttp=new ActiveXObject("Microsoft.XMLHTTP").
下一节,我们会介绍如何向服务器请求数据!
AJAX - 向服务器发送一个请求
要想把请求发送到服务器,我们就需要使用 open() 方法和 send() 方法.
open() 方法需要三个参数.第一个参数定义发送请求所使用的方法(GET 还是 POST).第二个参数规定服务器端 脚本的 URL.第三个参数规定应当对请求进行异步地处理.
例子解释 - showHint() 函数
showHint() 函数是一个位于 HTML 页面 head 部分的很简单的 JavaScript 函数.
此函数包含以下代码:
function showHint(str) {
if (str.length==0) { document.getElementById("txtHint").innerHTML=""; return; }
xmlHttp.onreadystatechange=function()
{ // 我们需要在这里写一些代码 }
readyState 属性 readyState 属性存有服务器响应的状态信息.每当 readyState 改变时,onreadystatechange 函数就会被执行.
表单下面的段落包含了一个名为 "txtHint" 的 span, 这个 span 充当了由 web 服务器所取回的数据的位置占位符.
当用户输入数据时,名为 "showHint()" 的函数就会被执行.函数的执行是由 "onkeyup" 事件触发的.另外需要说 明的是,当用户在文本域中输入数据时把手指从键盘按键上移开时,函数 showHint 就会被调用.
本文由net_zeng贡献
doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。
[ajax
Ajax 学习
AJAX - 浏览器支持
AJAX 的要点是 XMLHttpRequest 对象.
不同的浏览器创建 XMLHttpRequest 对象的方法是有差异的.
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null) { alert ("您的浏览器不支持 AJAX!"); return; }
8 / 44
[ajax
var
url="gethint.asp";
url=url+"?q="+str; url=url+"&sid="+Math.random(); xmlHttp.onreadystatechange=stateChanged; xmlHttp.open("GET",url,true); xmlHttp.send(null); }
9 / 44
[ajax
{ // Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlHttp; }
4 / 44
[ajax
send() 方法可将请求送往服务器.如果我们假设 HTML 文件和 ASP 文件位于相同的目录,那么代码是这样的:
xmlHttp.open("GET","time.asp",true); xmlHttp.send(null);
现在,我们必须决定何时执行 AJAX 函数.当用户在用户名文本框中键入某些内容时,我们会令函数"在幕后"执行.
} }
每当 XMLHTTP 对象的状态发生改变时,stateChanged() 函数就会执行.
当状态变更为 4("完成")时,txtHint 占位符的内容就被响应文本来填充.
AJAX Suggest 源代码的实例
下面的源代码属于上一节的 AJAX 实例.
例子解释 - HTML 表单
表单的 HTML 代码:
7 / 44
[ajax
id="txt1" onkeyup="showHint(this.value)"
First Name:
/>
Suggestions:
正如您看到的,这是一个简单的带有名为 "txt1" 输入域的 HTML 表单.输入域的事件属性定义了一个由 onkeyup 事件触发的函数.
3
请求处理中(响应中通常有部分数据可用,但是服务器还没有完成响应)
4
请求已完成(可以访问服务器响应并使用它)
我们要向这个 onreadystatechange 函数添加一条 If 语句,来测试我们的响应是否已完成(意味着可获得数据):
xmlHttp.onreadystatechange=function() { if(xmlHttp.readyState==4) { // 从服务器的 response 获得数据 } }
运行您的 AJAX 应用程序
请在下面的文本框中键入一些文本,然后单击时间文本框:
用户:
时间:
时间文本框可在不加载页面的情况下从 "time.asp" 获得服务器的时间!
可被用来创建更多交互性的应用程序. 我们已看到 AJAX 可被用来创建更多交互性的应用程序.
假如这三种方法都不起作用,那么这个用户所使用的浏览器已经太过时了,他或她会看到一个声明此浏览器不支持 AJAX 的提示.
注释:上面这些浏览器定制的代码很长,也很复杂.不过,每当您希望创建 XMLHttpRequest 对象时,这些代码就能 注释: 派上用场,因此您可以在任何需要使用的时间拷贝粘贴这些代码.上面这些代码兼容所有的主流浏览器:Internet Explorer,Opera,Firefox 以及 Safari.
您可以拷贝粘贴这些代码,然后亲自测试一下.
下一节为您展示如何使用 XMLHttpRequest 对象与服务器进行通信.
AJAX - 更多有关 XMLHttpRequest 对象的知识
在向服务器发送数据之前,我们有必要解释一下 XMLHttpRequest 对象的三个重要的属性.
onreadystatechange 属性 onreadystatechange 属性存有处理服务器响应的函数.下面的代码定义一个空的函数,可同时对 onreadystatechange 属性进行设置:
这是 readyState 属性可能的值:
状态
描述
0
请求未初始化(在调用 open() 之前)
1
请求已提出(调用 send() 之前)
3请求已发送(这里通常可以从响应得到内容头部)
例子解释 - stateChanged() 函数
stateChanged() 函数包含下面的代码:
function stateChanged() { if (xmlHttp.readyState==4) {
document.getElementById("txtHint").innerHTML=xmlHttp.resp onseText;
AJAX Suggest 实例
在下面的 AJAX 例子中,我们会演示当用户向一个标准的 HTML 表单中输入数据时网页如何与 web 服务器进行通 信.
在下面的文本框中输入名字: 在下面的文本框中输入名字: 本框中输入名字
First Name:
Suggestions:
responseText 属性会存储从服务器返回的数据.在这里,我们希望传回当前的时间.这是 "time.asp" 的代码:
<% response.expires=-1 response.write(time) %>
注释: 注释:Expires 属性可设置在页面缓存失效前页面被缓存的时间(分钟).Response.Expires=-1 指示页面不会被缓 存.
responseText 属性 可以通过 responseText 属性来取回由服务器返回的数据.
相关文档
最新文档