javascript和ajax的简单介绍

Ajax技术与JavaScript,JSP,XML,Javaservlet等有什么区别和联系?

ajax 是异部刷新机制 就是局部刷新,比如你注册的时候,刚输玩用户名就提示你对不对了,你会发现整个页面没有刷新,但是他已经和远端的服务器进行了数据交互。这有很多的优势,比如减少网络传输,比如良好的用户体验。单纯ajax实现也是比较麻烦的,所以又有了jquery框架,jquery框架就是个js文件,在页面上引入他就可以了,这样,你再写javascrip的时候就很简单了。

java script 是核心,他联系了ajax,jquery,css,xml,javaServlet。所以它是基础要好好学。

JSP 是一种技术,是SERVLET 的进化版,以前java做页面就是用输出流一句一句的输出,很麻烦,有了jsp以后就简化了java的bs模式的开发。

XML全程是可扩展标记语言,是用来存储数据的,数据包括配置文件数据,跟数据库类似数据等等。xml最大的优势就是编程语言无关,也就是说不管java,c#,vb等都可以读取xml里的数据,这样就给这些编程语言的联系建了个桥梁。

javaservlet其实就是个java类,它与普通的java类不同的是他继承了javax.servlet.http.httpservelt类,这样呢,他就能实现与服务器,客户端交互的功能,你也可以理解为客户端和服务器端的一个桥梁,以为http就是用来从服务器和客户端传数据的协议。

javascript和ajax的简单介绍

ajax是什么东西?

分类: 电脑/网络 程序设计 其他编程语言

问题描述:

如题`

解析:

术语Ajax用来描述一组技术,它使浏览器可以为用户提供更为自然的浏览体验。在Ajax之前,Web站点强制用户进入提交/等待/重新显示范例,用户的动作总是与服务器的“思考时间”同步。Ajax提供与服务器异步通信的能力,从而使用户从请求/响应的循环中解脱出来。借助于Ajax,可以在用户单击按钮时,使用JavaScript和DHTML立即更新UI,并向服务器发出异步请求,以执行更新或查询数据库。当请求返回时,就可以使用JavaScript和CSS来相应地更新UI,而不是刷新整个页面。最重要的是,用户甚至不知道浏览器正在与服务器通信:Web站点看起来是即时响应的。

虽然Ajax所需的基础架构已经出现了一段时间,但直到最近异步请求的真正威力才得到利用。能够拥有一个响应极其灵敏的Web站点确实激动人心,因为它最终允许开发人员和设计人员使用标准的HTML/CSS/JavaScript堆栈创建“桌面风格的(desktop-like)”可用性。

通常,在J2EE中,开发人员过于关注服务和持久性层的开发,以至于用户界面的可用性已经落后。在一个典型的J2EE开发周期中,常常会听到这样的话,“我们没有可投入UI的时间”或“不能用HTML实现”。但是,以下Web站点证明,这些理由再也站不住脚了:

BackPack

Google Suggest

Google Maps

PalmSphere

所有这些Web站点都告诉我们,Web应用程序不必完全依赖于从服务器重新载入页面来向用户呈现更改。一切似乎就在瞬间发生。简而言之,在涉及到用户界面的响应灵敏度时,基准设得更高了。

定义Ajax

Adaptive Path公司的Jesse James Garrett这样定义Ajax:

Ajax不是一种技术。实际上,它由几种蓬勃发展的技术以新的强大方式组合而成。Ajax包含:

基于XHTML和CSS标准的表示;

使用Document Object Model进行动态显示和交互;

使用XMLHttpRequest与服务器进行异步通信;

使用JavaScript绑定一切。

这非常好,但为什么要以Ajax命名呢?其实术语Ajax是由Jesse James Garrett创造的,他说它是“Asynchronous JavaScript + XML的简写”。

Ajax的工作原理

Ajax的核心是JavaScript对象XmlHttpRequest。该对象在Inter Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。

在创建Web站点时,在客户端执行屏幕更新为用户提供了很大的灵活性。下面是使用Ajax可以完成的功能:

动态更新购物车的物品总数,无需用户单击Update并等待服务器重新发送整个页面。

提升站点的性能,这是通过减少从服务器下载的数据量而实现的。例如,在Amazon的购物车页面,当更新篮子中的一项物品的数量时,会重新载入整个页面,这必须下载32K的数据。如果使用Ajax计算新的总量,服务器只会返回新的总量值,因此所需的带宽仅为原来的百分之一。

消除了每次用户输入时的页面刷新。例如,在Ajax中,如果用户在分页列表上单击Next,则服务器数据只刷新列表而不是整个页面。

直接编辑表格数据,而不是要求用户导航到新的页面来编辑数据。对于Ajax,当用户单击Edit时,可以将静态表格刷新为内容可编辑的表格。用户单击Done之后,就可以发出一个Ajax请求来更新服务器,并刷新表格,使其包含静态、只读的数据。

一切皆有可能!但愿它能够激发您开始开发自己的基于Ajax的站点。然而,在开始之前,让我们介绍一个现有的Web站点,它遵循传统的提交/等待/重新显示的范例,我们还将讨论Ajax如何提升用户体验。

Ajax可用于那些场景?——一个例子:MSN Money页面

前几天,在浏览MSN Money页面的时候,有一篇关于房地产投资的文章引起了我的好奇心。我决定使用站点的“Rate this article”(评价本文)功能,鼓励其他的用户花一点时间来阅读这篇文章。在我单击vote按钮并等待了一会儿之后,整个页面被刷新,在原来投票问题所在的地方出现了一个漂亮的感谢画面。

而Ajax能够使用户的体验更加愉快,它可以提供响应更加灵敏的UI,并消除页面刷新所带来的闪烁。目前,由于要刷新整个页面,需要传送大量的数据,因为必须重新发送整个页面。如果使用Ajax,服务器可以返回一个包含了感谢信息的500字节的消息,而不是发送26,813字节的消息来刷新整个页面。即使使用的是高速Inter,传送26K和1/2K的差别也非常大。同样重要的是,只需要刷新与投票相关的一小节,而不是刷新整个屏幕。

让我们利用Ajax实现自己的基本投票系统。

原始的Ajax:直接使用XmlHttpRequest

如上所述,Ajax的核心是JavaScript对象XmlHttpRequest。下面的示例文章评价系统将带您熟悉Ajax的底层基本知识:tearesolutions/ajax-demo/raw-ajax。注:如果您已经在本地WebLogic容器中安装了ajax-demo.war,可以导航到www.easyaq.com:7001/ajax-demo/raw-ajax,

浏览应用程序,参与投票,并亲眼看它如何运转。熟悉了该应用程序之后,继续阅读,进一步了解其工作原理细节。

首先,您拥有一些简单的定位点标记,它连接到一个JavaScriptcastVote(rank)函数。 function castVote(rank) {

var url = “/ajax-demo/static-article-ranking”;

var callback = processAjaxResponse;

executeXhr(callback, url);

}

该函数为您想要与之通信的服务器资源创建一个URL并调用内部函数executeXhr,提供一个回调JavaScript函数,一旦服务器响应可用,该函数就被执行。由于我希望它运行在一个简单的Apache环境中,“cast vote URL”只是一个简单的HTML页面。在实际情况中,被调用的URL将记录票数并动态地呈现包含投票总数的响应。

下一步是发出一个XmlHttpRequest请求: function executeXhr(callback, url) {

branch for native XMLHttpRequest object

if (window.XMLHttpRequest) {

req = new XMLHttpRequest();

req.onreadystatechange = callback;

req.open(“GET”, url, true);

req.send(null);

} branch for IE/Windows ActiveX version

else if (window.ActiveXObject) {

req = new ActiveXObject(“Microsoft.XMLHTTP”);

if (req) {

req.onreadystatechange = callback;

req.open(“GET”, url, true);

req.send();

}

}

}

如您所见,执行一个XmlHttpRequest并不简单,但非常直观。和平常一样,在JavaScript领域,大部分的工作量都花在确保浏览器兼容方面。在这种情况下,首先要确定XmlHttpRequest是否可用。如果不能用,很可能要使用Inter Explorer,这样就要使用所提供的ActiveX实现。

executeXhr()方法中最关键的部分是这两行:

req.onreadystatechange = callback;

req.open(“GET”, url, true);

第一行定义了JavaScript回调函数,您希望一旦响应就绪它就自动执行,而req.open()方法中所指定的“true”标志说明您想要异步执行该请求。

一旦服务器处理完XmlHttpRequest并返回给浏览器,使用req.onreadystatechange指派所设置的回调方法将被自动调用。 function processAjaxResponse() {

only if req shows “loaded”

if (req.readyState == 4) {

only if “OK”

if (req.status == 200) {

502 502’votes’).innerHTML = req.responseText;

} else {

alert(“There was a problem retrieving the XML data:

” +

req.statusText);

}

}

}

该代码相当简洁,并且使用了几个幻数,这使得难以一下子看出发生了什么。为了弄清楚这一点,下面的表格(引用自developer.apple/inter/webcontent/xmlreq)列举了常用的XmlHttpRequest对象属性。

属性

描述

onreadystatechange

每次状态改变所触发事件的事件处理程序

readyState

对象状态值:

0 = 未初始化(uninitialized)

1 = 正在加载(loading)

2 = 加载完毕(loaded)

3 = 交互(interactive)

4 = 完成(plete)

responseText

从服务器进程返回的数据的字符串形式

responseXML

从服务器进程返回的DOM兼容的文档数据对象

status

从服务器返回的数字代码,比如404(未找到)或200(就绪)

statusText

伴随状态码的字符串信息

现在processVoteResponse()函数开始显示出其意义了。它首先检查XmlHttpRequest的整体状态以保证它已经完成(readyStatus == 4),然后根据服务器的设定询问请求状态。如果一切正常(status == 200),就使用innerHTML属性重写DOM的“votes”节点的内容。

既然您亲眼看到了XmlHttpRequest对象是如何工作的,就让我们利用一个旨在简化JavaScript与Java应用程序之间的异步通信的框架来对具体的细节进行抽象。

Ajax: DWR方式

按照与文章评价系统相同的流程,我们将使用Direct Web Remoting(DWR)框架实现同样的功能。

假定文章和投票结果存储在一个数据库中,使用某种对象/关系映射技术来完成抽取工作。为了部署起来尽可能地简单,我们不会使用数据库进行持久性存储。此外,为使应用程序尽可能通用,也不使用Web框架。相反,应用程序将从一个静态HTML文件开始,可以认为它由服务器动态地呈现。除了这些简化措施,应用程序还应该使用Spring Framework关联一切,以便轻松看出如何在一个“真实的”应用程序中使用DWR。

现在应该下载示例应用程序并熟悉它。该应用程序被压缩为标准的WAR文件,因此您可以把它放置到任何一个Web容器中——无需进行配置。部署完毕之后,就可以导航到www.easyaq.com:7001/ajax_demo/dwr-ajax来运行程序。

可以查看HTML 源代码,了解它如何工作。给人印象最深的是,代码如此简单——所有与服务器的交互都隐藏在JavaScript对象ajaxSampleSvc的后面。更加令人惊讶的是,ajaxSampleSvc服务不是由手工编写而是完全自动生成的!让我们继续,看看这是如何做到的。

引入DWR

如同在“原始的Ajax”一节所演示的那样,直接使用XmlHttpRequest创建异步请求非常麻烦。不仅JavaScript代码冗长,而且必须考虑服务器端为定位Ajax请求到适当的服务所需做的工作,并将结果封送到浏览器。

设计DWR的目的是要处理将Web页面安装到后端服务上所需的所有信息管道。它是一个Java框架,可以很轻松地将它插入到Web应用程序中,以便JavaScript代码可以调用服务器上的服务。它甚至直接与Spring Framework集成,从而允许用户直接向Web客户机公开bean。

DWR真正的巧妙之处是,在用户配置了要向客户机公开的服务之后,它使用反射来生成JavaScript对象,以便Web页面能够使用这些对象来访问该服务。然后Web页面只需接合到生成的JavaScript对象,就像它们是直接使用服务一样;DWR无缝地处理所有有关Ajax和请求定位的琐碎细节。

AJAX是什么?

AJAX是创建交互式网页应用的网页开发技术的一种。

Ajax = 异步 JavaScript 和 XML 或者是 HTML(标准通用标记语言的子集)。可以用于创建快速动态网页的技术。在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

传统的网页(不使用 Ajax)如果需要更新内容,必须重载整个网页页面。

扩展资料

Ajax 开发与传统的 B/S开发有很大的不同。这些不同引入了新的编程问题,最大的问题在于易用性。由于 Ajax 依赖浏览器的 JavaScript 和XML,浏览器的兼容性和支持的标准也变得和 JavaScript 的运行时性能一样重要了。

综合各种变化的技术和强耦合的客户服务端环境,Ajax 提出了一种新的开发方式。Ajax 开发人员必须理解传统的 MVC 架构,这限制了应用层次之间的边界。同时,开发人员还需要考虑 B/S 环境的外部和使用 Ajax 技术来重定型 MVC 边界。

最重要的是,Ajax 开发人员必须禁止以页面集合的方式来考虑 Web 应用而需要将其认为是单个页面。一旦 UI 设计与服务架构之间的范围被严格区分开来后,开发人员就需要更新和变化的技术集合了。

参考资料来源:百度百科-ajax

javascript和ajax先学哪种?

ajax就是异步javascript和xml。

必须先学javascript才能懂ajax.当然。你学ajax就得学会一些服务端的程序。如php什么的。当然,可以不需要很精没关系。

css在 ajax中的应用也相当多。

先学会js.然后学jquery应用,再学点php之类的。ajax就差不多了。现在的ajax都是框架,先把一个用就可以了。不需要学太核心的。对js新手来说,难

js是什么,是Ajax还是JavaScript

我们常说的JS就是指JavaScript,JavaScript是一种客户端脚本语言,Ajax是JS的一种应用,利用JS在客户端创建一个ActiveX对象,进行异步请求的提交和处理.ExtJS是一个JS框架,封装了一些有用的JavaScript脚本,便于开发者使用,例如Ajax请求对象,UI对话框,页面布局等.因此js=extjs是绝对错误的,Ajax是js的一种也不完全正确,应该是Ajax是利用JS实现的.

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月27日 14:20:35
下一篇 2024年3月27日 14:27:47

相关推荐

  • sklexcel的简单介绍

    提问:文件后缀名的意义. doc意思是:Word文档文件,通过微软的word等软件打开。exe意思是:可执行文件、可执行应用程序,通过Windows视窗操作系统打开。jpg意思是:普通图形文件,联合图像专家小组指定,通过各种图形浏览软件、图形编辑器打开。 一个文件的扩展名通常表示是文件的类型,通过确认文件的扩展名即可确认对应打开该文件的软件。 后缀名的意思一…

    2024年5月18日
    3400
  • c语言中规划问题的简单介绍

    c语言的动态规划算法的这道题怎么做啊,求大神!!! 1、动态规划关键是找到问题中的子问题,写出状态方程。这个问题的子问题可以定义为前n件物品,总费用为v的最大价值总和。先考虑第n件物品,如果c[n]v的话,它有两种选择,放入背包和不放入背包。 2、设f[i,k]是将i万元投资到前k个项目得到的最高利润。 3、这道题考的是动态规划的思想。代码思路如下:假设我们…

    2024年5月18日
    4300
  • linux.isovmware的简单介绍

    vmware安装Linux(redhat6.5),iso镜像挂载 不过首先要检查你的CD是否已经挂载上了IOS文件。确定有了,使用以下命令:mount /dev/sr0 /mnt IOS中的文件就可以通过访问/mnt来读取了。有问题追问。 mac用户:安装VMwareFusion 选择一款Linux发行版本并下载其镜像文件 Linux发行版本众多,常见的有:…

    2024年5月18日
    3500
  • c语言开关怎么自保持,c语言开关灯问题简单

    c语言开关语句是什么? break在for循环来实现开关语句、while循环等循环流程控制中起的作用是停止执行break后面的语句,跳出本次循环,并跳出该循环控制体。 Switch在C语言中是保留字,其作用是进行判断选择。switch(开关语句)常和case break default一起使用。Switch用在编程中,如C语言中它经常跟Case一起使用,是一…

    2024年5月18日
    3500
  • 黑客如何学习攻击漏洞方法的简单介绍

    黑客初学者怎样入门 1、成为黑客的基础入门需要学习计算机编程、网络技术、操作系统、加密技术等相关知识。同时,需要具备好奇心、探索精神和解决问题的能力。想成为黑客,需要首先熟练掌握一种或多种编程语言,如Python、Java等。 2、加强密码安全是防范黑客攻击的基本措施之一。应该使用复杂度高、长度足够的密码,并定期更换密码。安装杀毒软件 安装杀毒软件可以及时发…

    2024年5月18日
    4000
  • ajax调用java,ajax调用失败是什么意思

    ajax请求服务返回java字节数组如何处理 你后台返回的就是一个json数据,你可以直接用的。json就是一个key-value形式的字符串,你可以通过json.ADDRESS获取address的值 欢迎追问。 以ajax的参数到后台只能通过request来接,所以接收到的参数必然是一个字符串,你要是想要数组,那就在你的参数中间加上一个分隔符,去后台接收之…

    2024年5月18日
    4200
  • java校验大于0的简单介绍

    java如何判断命令行参数数组长度是否大于0,求代码。 第一个:args[]是参数数组。main函数都会有这个参数,意思是当你从控制台输入数据的时候,就通过这个args参数来获取。 无法直接获取有效长度。需要用一个变量size来保存有效长度,新增size加一,删除size减一。上述方案跟ArrayList内部实现相同:Array List用capacity表…

    2024年5月18日
    3900
  • easyblinux的简单介绍

    如何安装双系统win7和linux 直接把系统包下载到本地解压ios到任何地方,准备一个空的磁碟,开启安装程式直接安装,但是软体最好转在系统盘避免双系统软体冲突。如果是windows和linux那就简单了,直接腾出一个磁碟下载安装包就装,不用在意版本。 四步完成win7 ubuntu双系统安装(硬盘,无需光驱)理论上winvista系统32位或64位均可。u…

    2024年5月18日
    3400
  • linuxvi通配符查询的简单介绍

    怎么在linux下安装oracle数据库 首先需要检查系统版本,然后从Oracle官方文档中找到对应的Linux版本。 useradd -m -g oinstall -G dba oracle –poracle (p表示添加帐号密码)创建oracle目录并改变目录权限 现在,创建存储 Oracle 10g 软件和数据库文件的目录。 验证系统要求 要验证系统是…

    2024年5月18日
    3400
  • java1.6.029linux的简单介绍

    linux中环境java环境变量设置好了之后,用startup.sh启动tomcat报错_百度… 1、到tomcat的bin目录下启动startup.bat,(Linux中到tomcat的bin目录下,./startup.sh),如果能进入tomcat页面,则表示tomcat启动成功。如果tomcat报错,拒绝访问,或者进不去的话要看具体原因。 …

    2024年5月18日
    2700

发表回复

登录后才能评论



关注微信