揭密各种AJAX控件和类库
Ajax控件和类库现在真的太多了,不知不觉中增加了Ajax的神秘性和复杂性,看到版内很多人为此费解和伤神,决定发此贴谈谈本人对Ajax的观点,希望能让大家对Ajax有一个本质的认识。
观点一:Ajax和服务器端技术毫不相关
严格的说,与传统web开发相比,Ajax是完完全全的客户端技术。由于很多控件封装了客户端和服务器端的通信过程,因此很多问题也因通信而起。事实上,不论何种Ajax技术,服务器端都是返回的一个纯文本流,再由客户端来处理这个文本。这段文本可以是xml格式,也可以是一个Html片段,也可以是一段JavaScript脚本,或者仅是一个字符串。服务器端仅仅是作为一个数据接口,客户端使用XMLHttpRequest对象来请求这个页面,服务器端在页面内写入结果文本,这个过程和普通的web开发没有任何区别。所不同的只是,客户端在异步获取结果后,不是直接显示在页面,而是由客户端的Javascript脚本处理后再显示在页面。至于各种控件所谓的能返回DataSet对象,Date对象,或者其他的数据类型,都是封装了这个处理过程的结果。
观点二:DOM模型是Ajax最本质的技术
之所以没有把XMLHttpRequest列为最本质的技术,因为本人觉得它实在是太简单了,它只是可以让浏览器在后台请求一个页面,并将其内容交给JavaScript处理。真正的核心应该是:DOM模型,即文档对象模型。在DOM模型里,Html标记都被认为是一个对象,例如:div对象,table对象等等。DOM模型就规定了这些对象所具有的属性、方法和事件。通过这些性质,可以对一个已经显示于浏览器的页面进行内容的修改,例如增加节点、修改节点位置,删除节点等等。而不仅仅是一个innerHTML属性这么简单,虽然这是一个很有用的属性。
观点三:在使用Ajax控件前理解它们的实现
使用Ajax控件的确可以提高效率,但如果你空中楼阁般使用控件,那就得不偿失了。从一个控件换到另外一个控件又会有一个漫长的学习曲线。所以应该从底层了解其,况且Ajax实在不是什么高深的技术。其实任何东西的最底层其实都是简单的,但如果封装了这些底层的东西,事情会变得复杂和难以理解。以Asp.net为例,它的定制特性可以使得只要在方法前加上[ajax method]类似这样的标志就可以称为一个异步方法,相信这使得Asp.net的Ajax开发显得更加“高效”或者是“神秘”,而更多的事情则被封装了。同样记住一条,任何对服务器端的请求仅仅是返回纯文本,我们不一定要依赖于封装好的处理过程,而完全可以自己来实现。
观点四:学好JavaScript
在大多数人看来,JavaScript总不是那么一种正规的语言,随便copy一段就碰巧能运行,学过c之类的人,一看也能看懂,而且在浏览器中常常有脚本错误提示,所以潜意识觉得总不能付之以大任。事实上,要学好Ajax,这就完全是一种错误的看法。javascript作为一种脚本语言,其语法的确不是很严格,但并不妨碍其完成诸多复杂的任务,没有JavaScript,就没有Ajax。所以本人强烈建议,学Ajax前,一定要好好研究一番JavaScript,一般来讲,如果能顺利看懂prototype框架的代码(如:prototype-1.3.1.js),你的JavaScript水平就基本过关了。同时对DOM模型也可以算有一个基本的了解。
观点五:Ajax点缀:CSS
用JavaScript控制CSS其实很简单,基本上每个DOM对象都有一个style对象,只要把css属性里的"-"去掉,并让随后的字母变为大写就可以作为属性使用了,例如:element.style.backgroundColor="#f00";在css是:选择符 {background-color:#f00}
分享到:
相关推荐
### Ajax并不神秘:深入解析各种Ajax控件和类库的本质 #### 观点一:Ajax与服务器端技术的关系 在探讨Ajax与服务器端技术的关系时,我们首先要明确一个概念:Ajax(Asynchronous JavaScript and XML)本质上是一种...
尽管本例中的“神秘之眼”并不直接涉及 Ajax 技术,但它展示了如何利用 JavaScript 进行 DOM 操作以及事件监听,这些都是实现 Ajax 功能的基础。 掌握 Ajax 技术对于现代 Web 开发至关重要,它可以帮助我们构建更为...
ScriptManager是ASP.NET AJAX的核心,它负责引入必要的JavaScript库并管理页面上的AJAX功能。 接下来,我们将探讨UpdatePanel控件,它是ASP.NET AJAX中最常用的组件之一,用于实现部分页面更新。通过将控件放入...
他还揭开了 Ajax 核心概念的神秘面纱,包括 XMLHttpRequest 对象。 五年前,如果不知道 XML,您就是一只无人重视的丑小鸭。十八个月前,Ruby 成了关注的中心,不知道 Ruby 的程序员只能坐冷板凳了。今天,如果想跟...
XMLHttpRequest对象是Ajax技术的基础,它允许JavaScript在页面不刷新的情况下与服务器进行通信。创建一个XMLHttpRequest实例非常简单: ```javascript var xhr = new XMLHttpRequest(); ``` 一旦创建了实例,我们...
本人学习AJAX时间并不长,仅10余天,不能说百分之百掌握,但也有所领悟。现在把自己的学习经过和体会写下来,与君共分享。 一、学习经过: AJAX技术的文章和书籍很多,视频也不少,可以说是近两年最热的技术。但...
6. **AJAX支持**:尽管ASP.NET 2.0本身不包含完整的AJAX框架,但它引入了UpdatePanel和ScriptManager等组件,允许部分页面更新,增强了用户体验。 7. **数据绑定和数据源控件**:数据绑定机制使数据呈现更加简单,...
关键是如何平滑的将服务器端的复杂度移植到客户端,这并不容易做到。这本书将专注于讲述如何构建“优雅又不失高水准”(state of the art)的JavaScript应用,包括软件架构、模板引擎、框架和库、同服务器的消息通信...
4. 松散耦合:JavaScript与HTML和CSS紧密配合,但彼此之间并不强依赖。 ### DOM操作 在`ButtonClicker`这样的游戏中,JavaScript与DOM(Document Object Model)的交互至关重要。DOM是HTML或XML文档的结构化表示,...
这个压缩包文件“JQUERY带内容交互互动的404黑色全屏蝙蝠侠页面代码.zip”包含了创建一个独特且引人注目的404错误页面的资源,该页面使用了jQuery库来实现动态交互效果,并以蝙蝠侠为主题,整体风格为黑色全屏设计。...
8. **AJAX支持**:虽然Asp.Net 2.0本身并不直接包含AJAX功能,但微软推出了Atlas(后来成为AjaxControlToolkit)库,使开发者能够利用部分页面更新和异步通信增强Web应用的交互性。 9. **Web服务和WCF的前身**:Asp...
Socket.IO是一个强大的库,它不仅支持WebSocket,还提供了对其他多种协议(如AJAX长轮询、JSONP-polling)的兼容,确保在不支持WebSocket的浏览器或网络环境下也能实现实时通信。 本项目“websocket-nodejs-...
9. 星空:静态的星空背景加上适当的动态元素,如流星划过、星座闪烁等,可以打造出宁静而神秘的氛围,适用于天文、星座等相关主题的网页。 这些特效的实现离不开HTML5的Canvas或者SVG元素,它们提供了丰富的图形...
5. **Ajax交互**:虽然描述中并未明确提及Ajax,但在某些情况下,导航项可能与服务器进行异步通信,比如加载子菜单内容或更新部分页面内容。 从提供的压缩包子文件名称来看,"jiaoben181878"很可能是包含这个特效...
《中国传统色彩小抄在线》是基于JavaScript技术实现的一个项目,旨在深入探讨并展示中国传统文化中的丰富色彩体系。这个压缩包包含了一个在线应用,通过JavaScript的交互性和动态特性,为用户呈现了中国传统色彩的...
jQuery是一个广泛使用的JavaScript库,它简化了JavaScript编程,提供了丰富的功能,如DOM操作、事件处理、动画效果以及Ajax交互。jQuery的核心理念是“write less, do more”,即用更少的代码实现更多的功能。在...
黑色背景通常用于提供深邃、神秘的氛围,而白色则作为主要内容的背景色,确保文字和图像的清晰可读。设计师可能使用了CSS的background-color属性来设置这两种颜色,并通过color属性控制文本颜色。此外,可能会用到...