• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >AJAX > Ajax技术(WEB无刷新提交数据)

Ajax技术(WEB无刷新提交数据)

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了Ajax技术(WEB无刷新提交数据)等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
Ajax内部交流文档一、使用Ajax的主要原因 
  1、通过适当的Ajax应用达到更好的用户体验; 
  2、把以前的一些服务器负担的工作转嫁到客户端,利于客户端闲置的处理能力来处理,减轻服务器和带宽的负担,从而达到节约ISP的空间及带宽租用成本的目的。    

二、引用 
Ajax这个概念的最早提出者Jesse James Garrett认为: 
  Ajax是Asynchronous JavaScript and XML的缩写。 
  Ajax并不是一门新的语言或技术,它实际上是几项技术按一定的方式组合在一在同共的协作中发挥各自的作用,它包括 
  使用XHTML和CSS标准化呈现; 
  使用DOM实现动态显示和交互; 
  使用XML和XSLT进行数据交换与处理; 
  使用XMLHttpRequest进行异步数据读取; 
  最后用JavaScript绑定和处理所有数据; 
  Ajax的工作原理相当于在用户和服务器之间加了—个中间层,使用户操作与服务器响应异步化。 
并不是所有的用户请求都提交给服务器,像—些数据验证和数据处理等都交给Ajax引擎自己来做, 
只有确定需要从服务器读取新数据时再由Ajax引擎代为向服务器提交请求。 
三、概述 
  虽然Garrent列出了7条Ajax的构成技术,但个人认为,所谓的Ajax其核心只有JavaScript、XMLHTTPRequest和DOM, 
如果所用数据格式为XML的话,还可以再加上XML这一项(Ajax从服务器端返回的数据可以是XML格式,也可以是文本等其他格式)。 
  在旧的交互方式中,由用户触发一个HTTP请求到服务器,服务器对其进行处理后再返回一个新的HTHL页到客户端, 
每当服务器处理客户端提交的请求时,客户都只能空闲等待,并且哪怕只是一次很小的交互、 
只需从服务器端得到很简单的一个数据,都要返回一个完整的HTML页,而用户每次都要浪费时间和带宽去重新读取整个页面。 
  而使用Ajax后用户从感觉上几乎所有的操作都会很快响应没有页面重载(白屏)的等待。 
  1、XMLHTTPRequest 
  Ajax的一个最大的特点是无需刷新页面便可向服务器传输或读写数据(又称无刷新更新页面), 
这一特点主要得益于XMLHTTP组件XMLHTTPRequest对象。这样就可以向再发桌面应用程序只同服务器进行数据层面的交换, 
而不用每次都刷新界面也不用每次将数据处理的工作提交给服务器来做, 
这样即减轻了服务器的负担又加快了响应速度、缩短了用户等候时间。 
  最早应用XMLHTTP的是微软,IE(IE5以上)通过允许开发人员在Web页面内部使用XMLHTTP ActiveX组件扩展自身的功能, 
开发人员可以不用从当前的Web页面导航而直接传输数据到服务器上或者从服务器取数据。 
这个功能是很重要的,因为它帮助减少了无状态连接的痛苦,它还可以排除下载冗余HTML的需要,从而提高进程的速度。 
Mozilla(Mozilla1.0以上及NetScape7以上)做出的回应是创建它自己的继承XML代理类: 
XMLHttpRequest类。Konqueror (和Safari v1.2,同样也是基于KHTML的浏览器)也支持XMLHttpRequest对象, 
而Opera也将在其v7.6x+以后的版本中支持XMLHttpRequest对象。对于大多数情况, 
XMLHttpRequest对象和XMLHTTP组件很相似,方法和属性也类似,只是有一小部分属性不支持。 
XMLHttpRequest的应用: 
// IE support 
if (window.ActiveXObject && !window.XMLHttpRequest) { 
 window.XMLHttpRequest = function() { 
 return new ActiveXObject((navigator.userAgent.toLowerCase().indexOf('msie 5') != -1) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP'); 
 }; 
} 
服务器进程返回数据的文本处理 
GET Requests 
Example: 
var req = new XMLHttpRequest(); 
if (req) { 
 req.onreadystatechange = function() { 
 if (req.readyState == 4 && req.status == 200) { 
 alert(req.responseText); 
 } 
 }; 
 req.open('GET', 'pageurl.html'); 
 req.send(null); 
}  
POST Requests 
Example: 
var req = new XMLHttpRequest(); 
if (req) { 
 req.onreadystatechange = function() { 
 if (req.readyState == 4 && req.status == 200) { 
 alert(req.responseText); 
 } 
 }; 
 req.open('POST', 'scripturl.cgi'); 
 req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
 req.send('var1=data1&var2=data2'); 
} 
XMLHttpRequest 对象方法描述  
abort() 停止当前请求  
getAllResponseHeaders() 作为字符串返问完整的headers  
getResponseHeader("headerLabel") 作为字符串返问单个的header标签  
open("method","URL"[,asyncFlag[,"userName"[, "password"]]]) 设置未决的请求的目标 URL, 方法, 和其他参数  
send(content) 发送请求 (param一定要这样传,因为后台得不到hidden params) 
setRequestHeader("label", "value") 设置header并和请求一起发送 ('post'方法一定要 ) 
XMLHttpRequest 对象属性描述  
onreadystatechange 状态改变的事件触发器(异步处理时要req.open('POST', 'servlet')或req.open('POST', 'servlet',true)) 
readyState 对象状态(integer): 
0 = 未初始化 
1 = 读取中 
2 = 已读取 
3 = 交互中 
4 = 完成  
responseText 服务器进程返回数据的文本版本  
responseXML 服务器进程返回数据的兼容DOM的XML文档对象  
responseBody 服务器返回的主题(非文本格式) 
responseStream 服务器返回的数据流 
status 服务器返回的状态码, 如:404 = "文件末找到" 、200 ="成功"  
statusText 服务器返回的状态文本信息  
2、JavaScript 
  JavaScript是一在浏览器中大量使用的编程语言,,他以前一直被贬低为一门糟糕的语言(他确实在使用上比较枯燥), 
以在常被用来作一些用来炫耀的小玩意和恶作剧或是单调琐碎的表单验证。但事实是,他是一门真正的编程语言, 
有着自已的标准并在各种浏览器中被广泛支持。 
3、DOM 
  Document Object Model。 
  DOM是给 HTML 和 XML 文件使用的一组 API。它提供了文件的结构表述,让你可以改变其中的內容及可见物。 
其本质是建立网页与 Script 或程序语言沟通的桥梁。 
  所有WEB开发人员可操作及建立文件的属性、方法及事件都以对象来展现(例如,document 就代表“文件本身“这个对像, 
table 对象则代表 HTML 的表格对象等等)。这些对象可以由当今大多数的浏览器以 Script 来取用。 
  一个用HTML或XHTML构建的网页也可以看作是一组结构化的数据,这些数据被封在DOM(Document Object Model)中, 
DOM提供了网页中各个对象的读写的支持。 
 function loadCnt(){ 
 var req=new XMLHttpRequest(); 
 if (req) { 
 req.onreadystatechange=function() { 
 if (req.readyState==4 && req.status==200) { 
 if(req.responseText!=-1){ 
 nodes=req.responseXML.documentElement.childNodes; 
 browse_cnt.innerText=nodes.item(0).text; 
 comment_cnt.innerText=nodes.item(1).text; 
 score_cnt.innerText=nodes.item(2).text; 
 } 
 } 
 } 
 req.open('POST', '$path/AjaxCntCtrl'); 
 req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
 req.send("photo_id="+document.form1.photo_id.value); 
 } 
 } 
 //responseXML.documentElement.getAttribute('stat') == 'ok' 
 //responseXML.documentElement.getElementsByTagName('title')[0].firstChild.data; 
4、XML 
  可扩展的标记语言(Extensible Markup Language)具有一种开放的、可扩展的、可自描述的
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-11ajax中文乱码的各种解决办法总结
  • 2017-05-11双层ajax嵌套(可多层)用法实例
  • 2017-05-11PHP+AJAX无刷新实现返回天气预报数据
  • 2017-05-11ajax readyState的五种状态详解
  • 2017-05-11Ajax商品分类三级联动的简单实现(案例)
  • 2017-05-11关于ajax的多次请求问题
  • 2017-08-21IE下遭遇Ajax缓存导致数据不更新的问题 ajax页面无刷新
  • 2017-05-11Ajax跨域访问Cookie丢失问题的解决方法
  • 2017-05-11AJAX实现鼠标经过弹出详细介绍示例
  • 2017-05-11ajax传递多个参数的实现代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Ajax通过XML异步提交的方法实现从数据库获取省份和城市信息实现二级联动(xml方法)
    • Ajax解决缓存的5种方法总结(推荐)
    • Ajax四种元素的关系介绍
    • 原生ajax和iframe框架实现图片文件上传的两种方式
    • 利用Ajax实现在脚本里传值实例介绍
    • 使用加载图片解决在Ajax数据加载中页面出现短暂空白的问题(推荐)
    • PHP Ajax实现页面无刷新发表评论
    • AJAX入门之XMLHttpRequest慨述
    • 用ajax xml的数据读取的HelloWorld程序
    • ajax获取php页面的返回参数,控件赋值的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有