AJAX学习笔记

合集下载

AJax技术

AJax技术

AJAX技术基础介绍基于XML的异步JavaScript,简称AJAX,是当前W eb创新(称为Web2.0)中的一个王冠。

感谢组成AJAX的各种技术,Web应用的交互如Flickr, Backpack和Goo gle在这方面已经有质的飞跃。

这个术语源自描述从基于网页的Web应用到基于数据的应用的转换。

在基于数据的应用中,用户需求的数据如联系人列表,可以从独立于实际网页的服务端取得并且可以被动态地写入网页中,给缓慢的Web应用体验着色使之像桌面应用一样。

虽然大部分开发人员在过去使用过XMLHttp或者使用Iframe来加载数据,但仅到现在我们才看到传统的开发人员和公司开始采用这些技术。

就像新的编程语言或模型伴随着更多的痛苦,开发人员需要学习新的技巧及如何最好利用这些新技术。

AJAX模式许多重要的技术和AJAX开发模式可以从现有的知识中获取。

例如,在一个发送请求到服务端的应用中,必须包含请求顺序、优先级、超时响应、错误处理及回调,其中许多元素已经在Web服务中包含了,就像现在的S OA。

AJAX开发人员拥有一个完整的系统架构知识。

同时,随着技术的成熟还会有许多地方需要改进,特别是U I部分的易用性。

AJAX开发与传统的CS开发有很大的不同。

这些不同引入了新的编程问题,最大的问题在于易用性。

由于AJ AX依赖浏览器的JavaScript和XML,浏览器的兼容性和支持的标准也变得和JavaScript的运行时性能一样重要了。

这些问题中的大部分来源于浏览器、服务器和技术的组合,因此必须理解如何才能最好的使用这些技术。

综合各种变化的技术和强耦合的客户服务端环境,AJ AX提出了一种新的开发方式。

AJAX开发人员必须理解传统的MVC架构,这限制了应用层次之间的边界。

同时,开发人员还需要考虑CS环境的外部和使用AJAX技术来重定型MVC边界。

最重要的是,AJAX开发人员必须禁止以页面集合的方式来考虑Web应用而需要将其认为是单个页面。

AJAX笔记3

AJAX笔记3

Web2.0之Ajax学习笔记与应用实例1.Ajax(Asynchronous JavaScript and XML)是一个结合了Java技术、XML、以及JavaScript的编程技术,可以让你构建基于Java技术的Web应用,并打破了使用页面重载的惯例。

2.Ajax,异步JavaScript与XML,是使用客户端脚本与Web服务器交换数据的Web应用开发方法。

这样,Web页面不用打断交互流程进行重新加裁,就可以动态地更新。

使用Ajax,你可以创建接近本地桌面应用的,直接的、高可用的、更丰富的、更动态的Web用户接口界面。

3.对于Mozilla﹑Netscape﹑Safari、Firefox等浏览器,创建XMLHttpRequest方法如下:xmlhttp_request=new XMLHttpRequest();4.IE等创建XMLHttpRequest方法如下:xmlhttp=new ActiveXObject("Msxml2.XMLHTTP")或xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");5.xmlhttp_request.open('GET',URL,true);xmlhttp_request.send(null);6.open()的第一个参数是HTTP请求方式—GET,POST或任何服务器所支持的您想调用的方式。

按照HTTP规范,该参数要大写;否则,某些浏览器(如Firefox)可能无法处理请求。

第二个参数是请求页面的URL。

第三个参数设置请求是否为异步模式。

如果是TRUE,JavaScript函数将继续执行,而不等待服务器响应。

这就是"AJAX"中的"A"。

接下来我主要想用实例来说话,下面这个例子是一个企业用户注册时的一个应用,当用户注册时检查用户名和企业名是否可用,以前的做法是在旁边加一个按钮,点击“检查”,就向服务器发出请求,然后等待……服务器返回信息,继续操作。

jQuery学习笔记

jQuery学习笔记

第一章一、$(document).ready(function(){//do something});和window.onload的区别1.前者同一页面可以使用多次,后者出现多次只有最后一次能正确显示2.前者在DOM模型加载完成后就开始执行,后台在所有元素(包括图片)加载完成后执行3.前者可以简化为$(function(){//do something});后者没有简写形式。

二、jQuery比较常使用的是链式操作,比如一个书目导航条:$(function(){$(“ul”).click(function(){$(this).addClass(“current”).children(“li”).slideDown().end().sublings().removeClass(“current”).children(“li”).slideUp();})})对于同一元素不超过3个操作的,一般写同一行,如果操作过多,可以将类似的操纵写成一行,便于阅读。

三、jQuery对象和DOM对象的转换1.jQuery转化为DOM对象Var $variable = $(“tr”); //jQuery objectVar variable = $variable[0]; //DOM objectThe transpartent method.DomObject = jQueryObject[index] or = jQueryObject.get(index).2.DOM Object To jQuery ObjectVar variable = getElementsByTagName(“tr”); //DOM objectVar $variable = $(variable) // jQuery object;The transpartent method.jQueryObject = $(DomObject)四、jQuery开发工具1.Dreamweaver 可以安装插件提示jQuery 插件名称:jQuery_API.mxp2.Aptana 功能非常强大的、开源、专注javascript和Ajax开发IDE;3.Visual Studio 2008。

AJAX新手快速入门

AJAX新手快速入门

一 AJAX 我也行
1.0 缘起
我是一个勤奋的 Blogger,坚持不懈的写 Blog,让我有了很多的收获。比如 天南地北的朋友,比如千奇百怪的朋友,比如志同道合的朋友。 不时会有朋友加 我的 MSN,也不时会有一些有趣的对话、甚至诡异的对话。 但是,最为诡异的对话,是发生在 2005 年 11 月的某一天。一个叫 Yeka 的 朋友在 MSN 上跟我 hi 了一下。 Yeka:hi,你好,我是博文视点的。 我:你好,什么事呀 Yeka:想请你写一本书,看看你有没有兴趣。 我: Yeka:有朋友向我们推荐你的,我们也觉得你的文笔不错。 我:是什么书呀?(内心颇有些得意啊 Yeka:一本关于 AJAX 的新手入门的书。 我: ( 我的 朋友 , 难 道这个 推荐 我的 朋友 ,不知道我不 懂 AJAX )
的吗?八成是要害我吧!) 我:是谁呀。 Yeka:熊节,还有孟岩。 我:……(无语中……照理说,他们应该了解我的呀,怎么会推荐我来写 书呢?而且还是 AJAX 的书。)
可悲啊,我其实是一个意志不坚定的同志,经不起 Yeka、孟岩他们几个的 撺掇,我也就跃跃欲试了。内心里想着,AJAX 嘛,新出来的技术,能有多难,
对于 AJAX 本质的理解; 对于整个 AJAX 以及相关技术地图的理解; 对于 AJAX 编程开发所需要的很多技巧、手段的掌握; 几乎是不可能的。 如果没有( N 多需要感谢的人)的( N 多方面的帮助),我们这本书,也 不可能以现在这样的深度,以(N 个月)内完成的速度,送到读者的面前。
希望这本书,能够对大家快速学习 AJAX,有所帮助。
写一本新手入门嘛,也不用写得太深的。 现在拿在你手里的这本书,就是我的处女作了——应该叫我们,就像你在 封面上看到的那样,有三个人,这个故事有点复杂——这是一本关于 AJAX 的 书,也是一本关于我如何写出 《AJAX——新手快车道》 这样一本书的书。 对于我 来说,这既是一次极限的写作经历,也是一次极限的学习经历。 其中的刺激,让我们一起来领略吧,Let’s GO!

Java相关课程系列笔记之十一Ajax学习笔记(建议用WPS打开)

Java相关课程系列笔记之十一Ajax学习笔记(建议用WPS打开)

Ajax学习笔记Java相关课程系列笔记之十一笔记内容说明Ajax(程祖红老师主讲,占笔记内容100%);目录一、Ajax概述 (1)1.1什么是Ajax (1)1.2 Ajax对象:如何获得Ajax对象 (1)1.3 Ajax对象的属性 (1)1.4编程步骤 (2)1.5编码问题 (2)1.6 Ajax的优点 (3)1.7缓存问题(IE浏览器) (3)1.8案例:简易注册(使用Ajax进行相关验证,get请求) (4)1.9案例:修改1.8案例,使用post请求 (5)1.10案例:使用Ajax实现下拉列表 (6)二、JSON (7)2.1什么是JSON (7)2.2数据交换 (7)2.3轻量级 (7)2.4 JSON语法( (7)2.5如何使用JSON来编写Ajax应用程序 (7)2.6案例:股票的实时行情 (9)2.7案例:显示热卖的前3个商品 (9)2.8同步请求 (10)2.9案例:修改1.8案例step1中的JS代码(使用同步请求) (11)一、Ajax概述1.1什么是AjaxAsynchronous Javascript And Xml(异步的JavaScript和Xml)。

是一种用来改善用户体验的技术,其实质是利用浏览器内置的一个特殊对象(XMLHttpRequest,一般称之为Ajax对象)异步地(Ajax对象在向服务器发送请求时,浏览器并不会销毁当前页面,用户仍然可以对当前页面作其他的操作)向服务器发送请求,服务器送回部分数据(不是一个完整的新的页面,而是文本或者Xml文档),在浏览器端,可以利用这些数据部分更新当前页面。

整个过程,页面无刷新,不打断用户的操作。

之前,都是先销毁原来的页面,然后发送请求,等待服务器发送响应,再生成新页面。

Ajax的工作流程:1.2 Ajax对象:如何获得Ajax对象注意事项:后面的案例也会用到以下函数1.3 Ajax对象的属性1)onreadystatechange:绑定一个事件处理函数(监听器),该函数用来处理readystatechange 事件。

学习ExtJs笔记

学习ExtJs笔记

学习ExtJs笔记Grid表格1、添加数据的时候,将数据的属性设置为dirty。

因为在使用Ajax提交数据的时候,非dirty的数据不会自动保存到store的modifield属性中。

2、保存数据:(1)store.modifield.slice(start,end);作用:返回一个新数组,取得从start到end的所有元素,但不包括end元素。

如果参数只有一个0,则表示取得全部的数据;(2)each(m,function())(m为一个数组),该方法主要作用是遍历数组m中的每一条记录,并且每条记录都按照function()方法进行处理。

不可在function方法里面加上循环,否则,将出现多重结果。

(3)listeners监听器:listeners: {"afterEdit": {fn: afterEdit,scope: this} }作用:监听afterEdit。

当单元格编辑完成或者退出编辑状态,自动调用fn方法,作用的范围是当前页面。

(4)当添加数据成功后,新添加的数据有三角行的标识,要除掉标识,可用Record 的commit方法。

3、读取数据(1)从Txt文件中读取数据将读取的数据编码eval(response.responseText),否则将不能正确读取数据。

(2)设置记录的字段的值var initValue = {name:'',gender:'',age:''};var p = new Record(initValue);p.set('name',data_get[i].name);p.set('gender',data_get[i].gender);p.set('age',data_get[i].age);Tree 树1、Tree的加载使用方法render。

Tree.render()方法将tree加载到tree的‘el’中。

菜鸟的Ajax笔记

菜鸟的Ajax笔记

菜鸟的Ajax笔记——简介Ajax的主要作用就是不刷新页面更新页面的内容,也就是异步传输。

Ajax的百度百科。

用来显示Ajax响应的div。

Ajax听起来很厉害,但是用起来其实很简单。

下面就是一段使用Ajax的简单示例。

function ajaxRequest(){var req = false;if(window.XMLHttpRequest) {var req = new window.XMLHttpRequest();} else if (window.ActiveXObject) {var req = new window.ActiveXObject('Microsoft.XMLHTTP');}if(!req) return false;req.onreadystatechange = callback;req.open('GET','ajax/ajaxTest.txt',true);req.setRequestHeader('Accept-Language','zh-cn');req.send(null);function callback(){switch (req.readyState) {case 1://alert('Loading');break;case 2://alert('loaded');break;case 3://alert('Interactive');break;case 4:if (req.status && req.status == 200){var str = req.responseText;document.getElementById('test').innerHTML = str;}break;}}}function addEventSimple(obj,evt,fn){if(obj.addEventListener){obj.addEventListener(evt,fn,false);}else if(obj.attachEvent){obj.attachEvent('on'+evt,fn);}}addEventSimple(document,'dblclick',ajaxRequest);代码的最后部分给document添加一个双击的响应函数,当文档被双击的时候就调用ajaxRequest函数,也就是负责发送Ajax请求的函数。

AJAX学习笔记

AJAX学习笔记

征服Ajax:Web.2.0.快速入门与项目实践.(Java)的学习笔记一、AJAX概述1、web2.0定义:web2.0代表的是一个新的网络阶段,它本身并没有特别明确的标准来进行描述,一般我们将促成这个阶段的各种技术和相关的产品服务统称为web2.0,例如:Ajax就是这一系列技术和产品服务中非常重要的成员,此外还包括博客、数据独立性等各种网络服务方式。

2、什么是Ajax:Asynchronous JavaScript and XML(本身并不是一项技术)几个技术点:异步、JS、XML。

这项技术关注的两个问题:一个借助异步JS实现浏览器和服务器之间的异步交互,如无需重新新装载整个页面就可以向服务器发送请求,并接受响应。

二是对XML文档的解析和处理。

3、Ajax相关技术简介:JS脚本:其编写的程序可以直接在浏览器中解释执行,可以在浏览器的支持下跨平台执行。

在JS脚本中可以调用浏览器及Ajax中提供的相关对象。

利用这些对象提供的属性和方法可以实现页面效果的动态控制。

XHTML和CSS:XHTML的全称是可扩展超文本标记语言Extensible HyperText MarkupLanguage,是一种为适应XML可扩展标记语言而重新改造的HTML。

是一种过渡,它结合了XML中的部分强大功能和HTML中大部分简单特性,其设计更加严密。

CSS:弥补了HTML再格式修饰中的不足,丰富页面动态效果,批量更新。

了解CSS的常用属性和设置方式是脚本编程中所必须的。

CSS实现了WEB页面中数据域格式的分离,与JS校本结合使用可以达到动态控制的效果。

DOM:文档对象模型Document Object Model,它在本质上是一种文档平台。

它是一种接口规范,独立于访问、解析或更新XML数据机制的一种应用。

DOM是以层次结构组织的节点或信息的集合,被认为是基于树活基于对象的。

提供API,允许添加、编辑、移动或删除树种任意的节点。

AJAX学习笔记

AJAX学习笔记

AJAX学习笔记一.关于Ajax的简介DHTML是Dynamic HTML,即为动态HTML.其结合了HTML,javascript,DOM,CSS.用途:AJAX主要侧重于Asynchronous(异步),一般情况下验证和表单填写就非常适合Ajax实现,还可以使用DOM的”拖”技术建立真正的网站.原则:当用户跳格离开最后一个域时,如果以前的应用(没有使用Ajax)没有保存表单,那么使用Ajax之后的应用也不要保存表单.安全:使用Ajax有一些安全考虑,记住,可以在浏览器中查看源代码,这说明任何人都知道你这个小部件是怎么创建的,建立XHR对象时必须添加统一资源定位符(URL),所以可能会有恶意的用户修改你的网站,运行他们自己的代码,谨慎使用Ajax可以降低这种风险.二.使用XMLHttpRequest对象创建XMLHttpRequest不用根据浏览器类型来创建,主要是通过检测浏览器是否提供对ActiveX对象的支持,如果支持,就可以使用ActiveX来创建XMLHttpRequest.否则就是用本地javascript对象来创建XMLHttpRequest对象.例如:var xmlHttp;function createXMLHttpRequest(){//如果是IE浏览器if(window.ActiveXObject){xmlHttp=new ActiveXObject(“Microsoft.XMLHTTP”);}//如果是除IE外的浏览器else if(window.XMLHttpRequest){xmlHttp=new XMLHttpRequest();}创建一个Ajax程序的一般步骤:1.一个客户端事件触发的一个Ajax事件.从最简单的onchange事件到某个特定的用户动作,很多这样的事件都可以触发Ajax事件,可以有一下的代码:<input type=”text” id=” email” name=”email” onblur=”validateEmail()”/>2.创建XMLHttpRequest对象的一个实例.使用open()方法建立调用,并设置URL以及所希望的HTTP请求方法(通常是GET 或POST),请求实际上是通过一个send()方法调用触发.可用的代码如下:var xmlHttp;function validateEmail(){var email=getDocumentById(“email”).value;var url=”validateEmail?email=”+ escape(email);if(window.ActiveXObject){xmlHttp=new ActiveXObject(“Microsoft.XMLHTTP”)}else if(window.XMLHttpRequest){xmlHttp=new XMLHttpRequest()}xmlHttp.open(“GET”,url,true);xmlHttp.onreadystatechange=callback;xmlHttp.send(null);}3.向服务器做出请求,可能调用Servlet,CGI脚本,或者任何服务器端技术;4.服务器可以做你想做的事情,包括数据库,甚至访问另一个系统;5.请求返回到浏览器,ContentType设置为text/xml,XMLHttpRequest对象只能处理text/html类型的结果,另外在更复杂的实例中响应设置的更广.response.setHeader(“Cache-Control”,”no-cache”);response.setHeader(“Pragma”,”no-cache”);response.setDateHeader(“Expires”,0);6.在这个实例中,XMLHttpRequest对象配置为处理返回时要调用callback()函数,这个函数会检查XMLHttpRequest的readyState属性,查看服务器的返回状态码,如果一切正常,callback()函数就会在客户端做一些有意思的工作,以下是一个典型的回调方法:function callback(){if(xmlHttp.readyState==4)if(xmlHttp.status==200){//do something interesting}}用于处理XML文档的DOM。

零基础学习AJAX之AJAX简单框架

零基础学习AJAX之AJAX简单框架

零基础学习AJAX之AJAX简单框架零基础学习AJAX之AJAX简单框架1.ajaxLibajaxLib是一个非常小巧的ajax框架。

使用它首先将文件使用引入到页面中。

改框架是一个直接获取XML的.框架,调运函数如下:loadXMLDoc(url,callback,boolean)其中,url为异步请求的地址,callback为请求成功之后返回之后调运的函数名称;boolean表示是否去掉XML文档中的空格,true为去掉空格如:采用AjaxLib框架返回的XML文档保存在全局变量resultXML中,可以再decodeXML中编写程序对其进行分析,例如:复制代码代码如下:functiondecodeXML(){varoTemp=resultXML.getElementsByTagName("temp");document.getElementById("targetID").innerHTML=oTemp[0].f irstChild.nodeValue;}可以看到代码长度比以前少了很多。

2.使用ajaxGoldAjaxgold是另外一款特别实用的ajax框架。

Ajaxgold是另外一款特别实用的ajax框架。

它有4个函数供开发者使用复制代码代码如下:getDataReturnText(url,callback);getDataReturnXML(url,callback);postDataReturnText(url,data,callback);postDataReturnXML(url,data,callback);前两个用于get方式返回文本和XML,后面两个函数是使用POST 请求方式返回文本和XML,下面以postDataReturnText(url,data,callback)为例说明复制代码代码如下:提取的数据将要显示在这以上代码向1-8.aspx发送数据,并传递数据a=2b=3,服务器返回成功之后调运函数display()对返回值进行处理。

ajax笔记

ajax笔记

ajax笔记Ajax技术Ajax技术,全称是Asynchronous JavaScript and XML,即异步的 JavaScript 和 XML。

该技术最早被用于Google地图,然后逐渐流行开来。

简单来说,Ajax技术是通过JavaScript异步传递数据,实现局部刷新而不用刷新整个页面。

以往,页面向服务器请求数据,服务器处理完后,再把整个页面返回到浏览器,这个过程需要重新加载整个页面,严重降低了用户的体验,Ajax的出现解决了这个问题。

它用的是与服务器进行异步通信的技术,这种技术的好处在于不需要进行页面的刷新。

Ajax的使用Ajax技术的简要原理是当用户请求一个页面时,JavaScript通过XMLHttpRequest对象发出请求,后台服务接收到请求后,处理请求,把处理完的数据返回给浏览器,由JavaScript根据接收到的数据在用户的当前页中进行局部刷新更新数据。

Ajax技术的优势1.页面刷新的速度加快,用户页面体验更佳2.减轻服务器的负担,请求只保留所需的信息,节省了带宽,减少服务器负担3.降低了页面对全局资源的访问,对客户端缓存策略的支持更好。

4.能够使网页程序与用户操作解耦,用户操作不会阻塞页面的加载效果。

Ajax技术的缺点1.不支持浏览器回退功能;2.Ajax应用程序由多个异步请求组成,同步异步交错,代码较为复杂,对开发人员技能要求较高。

Ajax技术的应用场景1.搜索框和关键字搜索;2.添加评论和点赞;3.图片、视频和音频的无刷新上传和展示;4.基于Ajax实现的购物车或收藏、记账、笔记等系统。

总之,Ajax技术的出现改变了传统的网页交互方式,有利于提高网站性能,改善用户体验,已经成为前端领域中不可或缺的一部分。

未来,随着需求的不断增加和技术的不断提升,Ajax技术也必然会得到更广泛的应用。

Ajax学习笔记

Ajax学习笔记

Ajax前言1、胖客户端(富客户端)特点:1)类似于传统的桌面系统;2)系统的反应是非常迅速和灵敏的;3)系统对使用者来说是非常友好的,可以提供丰富的提示功能;4)用户在使用的过程中,所做的操作不会被中断。

2、Ajax:1)用来开发比较复杂的B/S架构的客户端2)AJAX(Asynchronous JavaScript And XML):异步的JavaScript和XML. HTML:用来显示的XML:是以数据为核心的3、传统的B/S架构的软件:1)同步的交互方式:请求 ===> 等待 ===> 响应式2)缺点:1. 会中断用户操作;2. 如果网络慢,会出现空白页面,对用户来说是非常不友好的;3. 每次响应都会把一个新页面的所有内容替换整个浏览器上的所有内容,影响运行效率(局部刷新)。

Ajax 正文1、什么是AJAX?1)它是一个客户端技术,是将原来一些老的技术进行结合使用,产生的一种新的应用;2)可以跟任何的服务器端技术开发的程序进行交互;3)AJAX不是一门新的语言或者技术,只是将XML,DOM,JS,CSS等技术进行结合使用;4)异步的交互方式。

2、在AJAX中使用的一些技术1)JavaScript:编写基于AJAX的web应用,主要就是编写js代码;2)Dom:1. 当服务器端响应回来的内容是一个XML文档的时候,客户就可以根据dom模型解析这个xml文档;2. 客户端在进行局部刷新时,通过dom模型操纵整个页面;3)CSS:控制显示样式,使得页面更加美观;4)XMLHttpRequest:就是一个js对象,用来操纵AJAX引擎。

3、进行AJAX编程的基本步骤1)客户端产生js的事件;2)创建XMLHttpRequest对象(客户端浏览器内置对象);3)对XMLHttpRequest进行配置;4)通过AJAX引擎发送异步请求;5)服务器端接收请求并且处理请求,返回html或者xml内容;6)XMLHttpRequest调用一个callback函数(自己定义的)处理响应回来的内容;7)页面被进行局部刷新。

AJAX学习笔记

AJAX学习笔记

AJAX 学习笔记1.简介:AJAX 是一种在无需加载整个网页的情况下,更新部分网页 的技术 1.1 1.2 AJAX→异步:JavaScript 和 xml 创建快速动态网页的技术2.基础:HTML CSS JS/DOM(DOM 定义了访问和操作 HTML 文档的 标准)3.XMLHttpRequest 是 AJAX 的基础。

(XMLHttpRequest 用于 后台与服务器的交换数据) 4.创建 XMLHttpRequest 对象的语法: variable=new XMLHttpRequest();旧版: variable=newActiveXObject("Microsoft.XMLHTTP");If(windows.htmlrequest){//code forOpera, Safari XMLHttp=new XMLHttpRequest();IE7+, Firefox, Chrome,} Else{//code forIE5,IE6XMLHttp=new ActiveXObject(“microsoft.XMLHTTP”)}//**发送服务器请求的知识**//1.如果要将请求发送到服务器,我们要使用 XMLHttpRequest 对象的 open()和 2.语句send()方法Xmlhttp.open( ‘GET’, ”test1.TEXT”, ture); Xmlhttp.send();POST 与 GET 的区别 大部分情况下使用 GET,简单快速 不得不使用 POST 的情况: 无法使用缓存文件(更新服务器上的文件或数据库) 向服务器发送大量数据(POST 没有数据量限制) 发送包含未知字符的用户输入 POST 比 GET 更稳定也更可靠3.简单的 get 请求。

ajax实训心得

ajax实训心得

ajax实训心得
在进行Web开发的过程中,Ajax已经成为了一种非常重要的技术。

它可以让我们在不刷新页面的情况下向服务器发送请求并获得返回的数据,这种技术对于提升用户体验有着非常重要的作用。

在最近进行的Ajax实训中,我对Ajax有了更深入的了解,并在实践中收获了很多。

首先,在实训中我们学习了如何使用Ajax向后端发送请求。

我们发现,借助Ajax发送请求的方式非常灵活多样。

我们可以使用jQuery 框架中的$.ajax()方法,也可以使用XMLHttpRequest对象来发送请求。

在实际开发中,我们可以根据项目需求选择不同的方式来发送请求。

其次,我们还学习了如何处理Ajax返回的数据。

在实际开发中,我
们常常需要将从服务器返回的数据进行处理并展示给用户。

在实训中,我们学习了使用回调函数来处理Ajax返回的数据。

我们可以将数据
通过回调函数传递给页面,并将数据展示给用户。

最后,我们还学习了如何使用Ajax实现无刷新文件上传。

在实际开
发中,文件上传是一个非常普遍的需求。

借助Ajax,我们可以实现
无刷新的文件上传,从而提升用户体验。

在实训中,我们学习了使用FormData对象来处理文件上传,并使用Ajax进行无刷新上传。

总之,通过这次Ajax实训,我对Ajax有了更深入的了解,并且在实践中掌握了一些常用的技巧。

我相信这些技巧在我的Web开发实践中会非常有用。

电子商务概论笔记

电子商务概论笔记

第一章电子商务概述二、学习电子商务要从哪几方面把握:1.要把电子商务放在社会再生产的整个过程中进行考察。

2.要从规律性上认识电子商务。

3.“电子”和“商务”要有机的结合。

三、国际组织对电子商务的解释1.联合国贸发组织:电子商务是发生在开放网络上的包含企业之间,企业和消费者之间的商业交易。

2.全球信息基础设施委员会:运用电子通讯作为手段的经济活动,人们可以对带有经济价值的产品和服务进行宣传、购买和结算。

3.世界贸易组织:通过电子渠道而进行生产、分配、市场营销、货物和服务的销售、配送。

4.结论:①电子商务是以网络数据处理和传输为技术基础的,可以说计算机是电子商务的主工工具。

②电子商务是商务活动,包括一般商务的全部内容。

商务活动是电子商务的灵魂。

商务交易的全过程。

特点:①丰富的,可在全世界范围内检索。

②表达形式可是文字,也可是图形或音响。

③传递速度快,准确。

④是电子商务的根本特点,决定或衍生了电子商务的其他特点。

协议。

②ISDN综合业务数字网,一种公用电信网络。

③WWW—internet工具,文件以超文本方式编写,含有与许多相关文件的接口。

2.证系统的集成、③支付系统的集成、④物流配送系统的集成。

(2)(3)3.4.由电子商务市场主体决定的电子商务特点:①公平竞争。

②低成本。

③消费者的顾客价值高。

(从产品中获得的价值与为取得产品付出的成本之差)为什么电子商务消费者的顾客价值高于传统商务?(1)在获得的价值方面:①从网上商店来看,消费者选择多。

②从消费者来看,适应消费者的特点。

③从生产流通全过程看,消费者可以要求商家按照自己的意愿生产和提供某种产品。

1.信息网络技术为电子商务奠定了物质基础。

2.国际经济交往的客观要求。

3.市场竞争是催化剂。

六、电子商务产生的两个标志1.internet技术在商业活动各个环节全面应用。

2.internet上的商务活动已经在企业、政府乃至个人间展开。

七、电子商务的发展1.美国:①1992年“信息高速公路”。

ajax实训心得

ajax实训心得

ajax实训心得
在我的Web开发课程中,我们学习了许多关于AJAX的知识。

AJAX 是一种用于创建交互式Web应用程序的技术,它可以通过异步通信方式在Web浏览器和服务器之间传输数据,而不必刷新整个页面。

在完成AJAX实训后,我获得了以下几点心得体会。

首先,AJAX可以提高Web应用程序的用户体验。

当我们使用常规的Web应用程序时,每次与服务器进行交互都需要重新加载整个页面。

这种刷新机制会导致用户等待时间增加,从而降低了用户体验。

而AJAX能够通过异步通信方式在后台与服务器进行数据交互,从而无需重新加载整个页面,用户可以更快地获取到所需信息,提高了用户体验。

其次,AJAX可以提高Web应用程序的性能。

由于AJAX使用异步通信方式,因此在与服务器交互时,它只会传输必需的数据,而不是整个页面。

这样可以减少服务器的负载,提高Web应用程序的性能。

最后,AJAX可以提供更好的可用性和可访问性。

由于AJAX可以在后台与服务器进行数据交互,因此它可以为Web应用程序提供更好的可用性和可访问性。

例如,对于移动设备用户,AJAX可以为他们提供更快的响应速度和更好的体验。

总之,AJAX是一种非常有用的技术,它可以提高Web应用程序的性能、用户体验和可用性。

在我的实践中,我学会了如何使用AJAX创建交互式Web应用程序,并且我意识到AJAX的潜在优势。

我相信这种技术在未来的Web开发中将发挥越来越重要的作用。

JavaEE5学习笔记12-JSF集成AJAX使用经验总结

JavaEE5学习笔记12-JSF集成AJAX使用经验总结

JavaEE5 Email:su 1. JSF AJAX ajax4jsf AJAX JSF JSFJSP JSF12-JSF ᬫŝAJAX Ü/ȃ ᐪmail:suhuanzheng7784877@4jsf JSF AJAXJSF ajax4jsf ajax4jsf ajax4jsf js html js ajaxᐪJSF4jsfajaxax2.ajax4jsf-1.1.1.jar/Code/Jar/JKL/Downloadajax4jsf111jar.htm jarjarcommons-beanutils.jarcommons-collections.jarcommons-digester.jarcommons-logging.jaroscache-2.4.1.jar3.web.xml<!--JSF ajax AJAX4JSF--><filter><display-name>Ajax4jsf Filter</display-name><filter-name>ajax4jsf</filter-name><filter-class>org.ajax4jsf.Filter</filter-class></filter><filter-mapping><filter-name>ajax4jsf</filter-name><servlet-name>Faces Servlet</servlet-name><dispatcher>REQUEST</dispatcher><dispatcher>FORWARD</dispatcher><dispatcher>INCLUDE</dispatcher></filter-mapping>servler Faces Servlet Faces Servlet JSF javax.faces.webapp.FacesServlet org.ajax4jsf.Filter ajax4jsf-1.1.1.jarajax filter request forward request include request JSF4.AJAX<%@page language="java"pageEncoding="UTF-8"%><%@taglib uri="/jsf/html"prefix="h"%><%@taglib uri="/jsf/core"prefix="f"%><%@ taglib uri="https:///ajax" prefix="a4j" %> <head><title></title></head><body><f:view><a4j:region id="a4j_2"><h2></h2><h:form id="loginForm"><h:panelGrid columns="3"><h:outputLabel value=""></h:outputLabel><h:inputText id="txtUserName"value="#{erName}"><a4j:supportactionListener="#{UserBean.validateUserName}"event="onblur"reRender="result"></a4j:support></h:inputText><h:panelGroup><h:message for="txtUserName"></h:message><h:outputText value="#{UserBean.validUserMsg}" id="result"style="color:red"/></h:panelGroup><h:outputLabel value=""></h:outputLabel><h:inputSecret id="txtPwd"value="#{UserBean.password}"></h:inputSecret><h:message for="txtPwd"></h:message><h:outputLabel value=""></h:outputLabel><h:panelGroup><h:inputText id="txtCode"value="#{UserBean.code}" size="10"/><a4j:outputPanel id="detail_media"><a4j:commandLink reRender="detail_media"><a4j:mediaOutput element="img"cacheable="false"session="false"createContent="#{UserBean.paint}"value="#{imageData}"mimeType="image/jpeg" border="0" /></a4j:commandLink></a4j:outputPanel></h:panelGroup><h:outputText value="#{UserBean.validateCodeMsg}"style="color:red"/></h:panelGrid><h:panelGrid columns="3"><h:outputLabel value=""></h:outputLabel><h:inputText id="myname"value="#{UserBean.myname}"><a4j:supportactionListener="#{UserBean.isHaveName}"event="onblur"reRender="result2"></a4j:support></h:inputText><h:panelGroup><h:message for="myname"></h:message><h:outputText value="#{UserBean.validUserMsg}" id="result2"style="color:red"/></h:panelGroup></h:panelGrid><h:commandButton action="#{UserBean.login}" value=""/></h:form></a4j:region></f:view></body></html>1):ajax ajax4jsf<%@ taglib uri="https:///ajax" prefix="a4j" %>2):ajax<a4j:region id="a4j_2"></a4j:region>AJAX3):ajax ajaxJSF<a4j:support actionListener="#{UserBean.validateUserName}"event="onblur" reRender="result"></a4j:support>4):ajax4jsf ajax<a4j:outputPanel id="detail_media"><a4j:commandLink reRender="detail_media"><a4j:mediaOutput element="img" cacheable="false"session="false" createContent="#{UserBean.paint}"value="#{imageData}" mimeType="image/jpeg"border="0" /></a4j:commandLink></a4j:outputPanel>5.Bean/*** ClassName: UserBean.java* created on Nov 1, 2007* Copyrights 2007-2008 qjyong All rights reserved.* EMail: qjyong@*/package ajax;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.IOException;import java.io.OutputStream;import java.util.Random;import javax.faces.context.FacesContext;import javax.faces.event.ActionEvent;import javax.imageio.ImageIO;import javax.servlet.http.HttpSession;/*** @author qiujy* @version 1.0**/public class UserBean {private String userName;private String password;private String code; //private String validUserMsg;private String validateCodeMsg;private String myname;public String getMyname() {return myname;}public void setMyname(String myname) {this.myname = myname;}/*** @return the code*/public String getCode() {return code;}/*** @param code the code to set*/public void setCode(String code) {this.code = code;}/*** @return the validUserMsg*/public String getValidUserMsg() {return validUserMsg;}/*** @param validUserMsg the validUserMsg to set*/public void setValidUserMsg(String validUserMsg) { this.validUserMsg = validUserMsg;}/*** @return the userName*/public String getUserName() {return userName;}/*** @param userName the userName to set*/public void setUserName(String userName) {erName = userName;}/*** @return the password*/public String getPassword() {return password;}/*** @param password the password to set*/public void setPassword(String password) {this.password = password;}/*** @return the validateCodeMsg*/public String getValidateCodeMsg() {return validateCodeMsg;}/*** @param validateCodeMsg the validateCodeMsg to set*/public void setValidateCodeMsg(String validateCodeMsg) { this.validateCodeMsg = validateCodeMsg;}public void validateUserName(ActionEvent event){System.out.println("input name===" + erName);if(!userName.matches("\\w{6,20}")){this.validUserMsg = "!";}}public void paint(OutputStream out, Object data) throws IOExceptionif (data instanceof ImageData) {I mageData imageData = (ImageData) data;// 10009999R andom randomNumber = new Random();String keyCode = randomNumber.nextInt(8999) + 1000 + "";//sessionHttpSession session =(HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(true);session.setAttribute("keyCode", keyCode);//int outPutLine = 0;outPutLine = randomNumber.nextInt(100);BufferedImage img = new BufferedImage(imageData.getWidth(), imageData.getHeight(), BufferedImage.TYPE_INT_RGB);Graphics2D g = img.createGraphics();g.setBackground(imageData.getBackground());g.setColor(imageData.getDrawColor());g.setFont(imageData.getTextFont());//g.clearRect(0, 0, imageData.getWidth(),imageData.getHeight());//g.drawLine(outPutLine, outPutLine, imageData.getWidth()- outPutLine, imageData.getHeight() - outPutLine);//g.drawString(keyCode, 10, 16);g.dispose();ImageIO.write(img, "jpeg", out);}}public String login(){System.out.println("user--code" + this.getCode());//sessionHttpSession session =(HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(true);String keyCode = (String)session.getAttribute("keyCode");if(keyCode.equals(this.getCode())){return"success";}else{this.validateCodeMsg = "";return null;}}public void isHaveName(ActionEvent event){System.out.println("input myname ===" + this.myname);if("liuyan".equalsIgnoreCase(myname)){this.validUserMsg = "";}}}/*** ClassName: ImageData.java* created on Nov 28, 2007* Copyrights 2007-2008 qjyong All rights reserved.* EMail: qjyong@*/package ajax;import java.awt.Color;import java.awt.Font;/*** @author qiujy* @version 1.0**/public class ImageData implements java.io.Serializable { private int width = 60;private int height = 20;private Color background = new Color(0xDCDCDC);private Color drawColor = Color.black;private Font textFont = new Font("Times New Roman", Font.PLAIN, 18);/*** @return the width*/public int getWidth() {return width;}/*** @param width the width to set*/public void setWidth(int width) {this.width = width;}/*** @return the height*/public int getHeight() {return height;}/*** @param height the height to set*/public void setHeight(int height) {this.height = height;}/*** @return the background*/public Color getBackground() {return background;}/*** @param background the background to set*/public void setBackground(Color background) { this.background = background;}/*** @return the drawColor*/public Color getDrawColor() {return drawColor;}/*** @param drawColor the drawColor to set*/public void setDrawColor(Color drawColor) { this.drawColor = drawColor;}/*** @return the textFont*/public Font getTextFont() {return textFont;}/*** @param textFont the textFont to set*/public void setTextFont(Font textFont) {this.textFont = textFont;}}6./a4j.res/org.ajax4jsf.framework.ajax.AjaxScript.faces js<script type='text/javascript' src='/JSFDemo/a4j.res/org.ajax4jsf.framework.ajax.AjaxScript.faces'> </script>ajax4jsf html<td><label>/"č</label></td><td><input id="loginForm:txtUserName" type="text"name="loginForm:txtUserName"onblur="A4J.AJAX.Submit('a4j_2','loginForm',event,{'par ameters':{'loginForm:_id2':'loginForm:_id2'} ,'actionUrl':'/JSFDemo/ajax/main.faces'} )"/></td><td><td><input id="loginForm:myname" type="text"name="loginForm:myname"onblur="A4J.AJAX.Submit('a4j_2','loginForm',event,{'par ameters':{'loginForm:_id14':'loginForm:_id14'} ,'actionUrl':'/JSFDemo/ajax/main.faces'} )" /></td><td>onblur js<td><label></label></td><td><input id="loginForm:txtCode" type="text"name="loginForm:txtCode" size="10" /><spanid="loginForm:detail_media"><a href="#"id="loginForm:_id9" name="loginForm:_id9"onclick="A4J.AJAX.Submit('a4j_2','loginForm',event,{'pa rameters':{'loginForm:_id9':'loginForm:_id9'} ,'actionUrl':'/JSFDemo/ajax/main.faces'} );return false;"><imgid="loginForm:_id10"src="/JSFDemo/a4j.res/org.ajax4jsf.framework.resource.U serResource/n/n/-1487394660/DATA/eAFlUk1rE1EUvZ0mtRGqsa3Wr0XVIrh5Wdiuoou2EhpIW2hsUQPCy8ybZNKZedP37iSjoht.gAVXg iAuXPmx8Te4UetWhOLSjfQ31Pte0y8cmBnu5b5zzj3vfNiBvFYwLVWL8Q7PpjvaZ77ikehJtc6U0DJVrmCrWqiVfjG1qoI7HDmYZ2zmrwO5Goy4SnAU8zJGESPCaK3Du7wU8rhVWm52hIvlGpwQWRIQ5gY8g4EaDEfSC.xAeP063-VhKmyRJaTquoHImM9doZkro0TGhM3qSEQLMvSEqvOuUPe.fr798vXWogNODQpuyLVeogWOa6ijCuIWaTip6YxnMfpMCFcJnOk07lOJ kC0KbEtvLog9OlWNkjBVMNawOzGzE-vvtPnj3puivhE6AFlCduQQ8gk PYrQ7DiJc-Q96zSx5BBlh2Lg7J3hMJKNHSebNLuX3535--rb14NU-h9 NVMG6sYYFkyykmKdJ2gkf2QvY-WUJDRTt0RO6xAYQz157sMzMr-mlib D9lgsCqEW8Jc80fLyc7vx5OMAfyVRhqi6DVxirke4GHbbKzyd31lpJp 7CEU9y6d97A0L0OpyO6Cp3jPFsbts3TpKDKsUEwQTh-Om0bZOjhOIm8 ZFVY8QTF7euDdxPPii5spqajAkM.DpM1JhU1MDRxXI1w6hHMN-56Gek LxKTeg4KtW044jOI1Kg0AO4nbRMsPu9vZ2QhYYpeeNV7v0moaCkQM1R umXtzN.vv9e04MwVIULPnXqQgU8DB4Lz1i2JpQOZFyBQiIpC3XqVyGn 7S-v8VEoajDur4iNVGgU3ixSOJspUkEOGaZSikFYWuC6jbwZCvIxF1O kjbCc1Towu2kEwqj5JGTl3SASenJJ9CZXZMTj7B8chjyM.faces" border="0" /></a></span></td><td><span style="color:red"></span></td>urlajax4jsf javascript html ajaxJSF6ajaxweb。

AJAX笔记整理

AJAX笔记整理

AJAX笔记整理一.Ajax简介Ajax 由 HTML、JavaScript™技术、DHTML 和 DOM 组成,这一杰出的方法可以将笨拙的 Web 界面转化成交互性的 Ajax 应用程序。

利用Ajax技术通过对XMLHttp Request对象的操作可以实现网站页面的局部刷新,增强用户体验。

成功应用:Go ogle Maps,Google Suggest。

//XMLHttpRequest对象的建立及应用(Ajax核心)var xmlhttp;try{xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}catch(e){try{xmlhttp = new XMLHttpRequest();}catch(e){}}}xmlhttp.onreadystatechange = function(){//事件处理语句}xmlhttp.open();xmlhttp.send();二。

Javascript基本语法a)变量用var声明,变量类型可变。

数据类型: Undefined、Null、Boolean、String、Number、Object。

其他和C语言语法基本一样。

b)if语句、条件运算符(?:)、switch语句、while语句、for语句。

with(object){Statements;}for(var p in obj){…}c)函数定义:函数可像变量一样传递。

//函数定义var test = function([arguments]){//函数代码}function test([arguments]){//函数代码}d)内部函数://eval函数执行Javascript代码var a = 1;alert("a"); //显示aalert(eval("a")); //显示a的值,结果为1//parseInt和parseFloat函数将字符串转换为数字parseInt("1.23"); //返回1parseFloat("5"); //返回5parseFloat("1.23"); //返回1.23//escape和unescape函数进行URL编码和解码escape("我爱JavaScript"); //返回%u6211%u7231JavaScriptunescape("%u6211%u7231JavaScript"); //返回我爱JavaScript//isNaN判断变量是否数字,isFinite判断变量是否无穷大三.对象及表单Date对象:var obj = new Date();obj.getFullYear();obj.getMonth();obj.getDay();obj.getDate();obj.getHours();obj.getMinutes();obj.getSeconds();Math对象:Math.random();Document对象:document.write("hello world.");document.title;//返回或设置文档标题document.URL;//返回或设置文档地址document.referrer;//当前页面的来源页面地址document.getElementById("id");var newDoc = document.open("text/html","replace");var txt = "<html><body>sometext</body></html>";newDoc.write(txt);newDoc.close();document.anchors;//返回文档书签标记(<a name>)组成数组document.anchors[0].innerHTML;document.images;document.cookie;//返回或设置cookiedocument.forms;document.links;//返回文档中所有链接(<a href>)组成数组document.domain;//返回或设置文档域名stModified;//返回文档最后一次修改日期Event对象:event.type;//事件类型event.clientX;//窗口的X坐标event.clientY;event.button;//鼠标按键event.keyCode;//键盘按键event.screenX;//屏幕X坐标event.screenY;event.x;//元素的X坐标,Mozzilla为layerXevent.y;event.shiftKey;event.altKey;event.ctrlKey;window对象:window.status="状态栏信息";window.resizeBy(-100,-100);//改变窗口大小window.scrollBy(100,100);setTimeout("timedCount()",1000);clearTimeout(t);window.location="";window.location.reload(true);//从服务器载入,反之为缓存,默认falsewindow.location.hash = "#chapter1";//更改url为 url+#chapter1window.location.search = "?sort=book&id=123";//更改url查询字符串window.location.href = "";window.location.replace(url);//替换浏览器历史列表当前页面,安全性高网站中很有用Navigator对象:navigator.appName;//浏览器正式名称navigator.appVersion;//浏览器版本号Array对象:var objArray = new Array();var objArray = [];var objArray = [new Date(),"abc",1234];//使用多维数组var arr = new Array(4);for(var i=0;i<4;i++){arr[i] = new Array(6);}//数组对象的方法[1,2,3,4].toString();//result: "1,2,3,4"["a","b","c"].contact("d","e","f");//result: ["a","b","c","d","e","f"][1,2,3,4].join("|");//result: "1|2|3|4"[1,2,3,4].pop();//result: [1,2,3][1,2,3,4].push("a","b");//result: [1,2,3,"a","b"][1,2,3,4].reverse();//result: [4,3,2,1][1,2,3,4].shift();//result: [2,3,4][1,2,3,4,5].slice(1,4);//result: [2,3,4][1,2,3,4].unshift("a","b");//result: ["a","b",2,3,4]String对象:"hello".length;//result: 5"hello,jack".indexOf("hello");// result: 0"abcabc".indexOf("a",1);// result: 3"abcabc".lastIndexOf("b");// result:4"abc".charAt(1);// result: "b""abc".charCodeAt(0);// result: 97"abcabc".slice(1,4);// result: "bca""a,b,c,d".split(",");// result: ["a","b","c","d"]"a,b,c,d".split(",",2);// result: ["a","b"]"a,b,c".split("");// result: ["a",",","b",",","c"]"ab,c".split();// result: ["ab,c"]"abcdef".substr(1,3);// result: "bcd",3为串长度var str = "abc".replace("a","b");// result: str="bbc",原串不变str.match(/"d+/);// 判断是否为数字,括号内为正则表达式"aabcabcabc".search(/abc/g); // result: 显示索引值1"abc".toUpperCase();// result: "ABC""ABc".toLowerCase();// result: "abc"var str = "abc".contact("def","ghi");// result: str = "abcdefghi",参数个数不限History对象:history.go(-1);history.go();//仅刷新当前页面history.back();history.forward();四.事件机制//事件的绑定document.onclick = function(){//事件处理程序}//attachEvent和addEventListener方法绑定事件处理程序function func(){//语句}if(element.addEventListener){element.addEventListener("onclick",func,false);}else{element.attachEvent("click",func,false);}//IE中event是全局变量,非IE浏览器需显示调用实现兼容evt = evt ? evt : window.event;五.Ajax基础框架之DOM(Document Object Module)模型简述文档结点:元素、属性、文本 (顺序1.2.3)。

Ajax-Json课堂笔记

Ajax-Json课堂笔记

1、Ajax指异步JavaScript 及XML(Asynchronous JavaScript And XML)为了解决传统的web应用当中“请求-等待-请求”的弊端而开发的技术。

其实质是,使用JavaScript调用浏览器内置的一个对象(XmlHttpRequest)向服务器异步发送请求(不打断用户的操作),服务器返回xml或者text给XmlHttpRequest对象。

接下来,JavaScript使用服务器返回的数据更新页面。

2、编程步骤step1:获得XmlHttpRequest对象。

因为该对象没有标准化,要区分浏览器。

function getXmlHttpRequest(){var xmlHttpRequest = null;if ((typeof XMLHttpRequest) != 'undefined') { xmlHttpRequest = new XMLHttpRequest();} else {xmlHttpRequest=newActiveXObject('Microsoft.XMLHttp');}return xmlHttpRequest;}step2:使用XmlHttpRequest对象向服务器发送请求。

A、发送get请求var xhr = getXmlHttpRequest();xhr.open("get","abc.do?name=zs&age=22",true);//open(请求方式,请求地址,同步(false)/异步(true))//注册一个监听器xhr.onreadystatechange = f1;xhr.send(null);B、发送post请求var xhr = getXmlHttpRequest();xhr.open("post","abc.do",true);xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");//注册一个监听器xhr.onreadystatechange = f1;xhr.send("name=zs&age=22");step3:在服务器端处理请求step4:使用服务器返回的数据更新页面。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档