再学AJAX

本文介绍了AJAX的基础知识,包括其在网页应用中的作用及其实现方式。文章讲解了如何利用JavaScript、HTML、DOM等技术实现与服务器的异步交互,并展示了具体的XMLHttpRequest对象创建与使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AJAX用了很久了,主要处理ddl联动无刷新,以及验证的处理,用ajaxpro.net应该是比较容易的,只要配置下webconfig,以及页面方法加个属性(具体可以google),就能简单使页面JavaScript调用服务端方法,并通过异步对页面进行改变.

突然有人问我ajax的原理时,一时脑中却回忆不起来了,所以抽空又看了下ajax的原理,以下总结下一些基本的东西

Ajax 应用程序所用到的基本技术

1.HTML----建立web表单并确定应用程序其他部分使用的字段

2.JavaScript----运行ajax的核心代码,帮助改进与服务器应用程序的通讯

3.DHTML----动态更新表单

4.DOM----文档对象模型,通过js处理html结构和(某些情况下)服务器返回的xml

一个JavaScript对象XMLHttpRequest.

对象的创建: 

/* Create a new XMLHttpRequest object to talk to the Web server */
var xmlHttp = false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try {
  xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
  try {
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (e2) {
    xmlHttp = false;
  }
}
@end @
*/

if (!xmlHttp && typeof XMLHttpRequest != 'undefined'{
  xmlHttp 
= new XMLHttpRequest();
}

 

现在先不管那些注释掉的奇怪符号,如 @cc_on,这是特殊的 JavaScript 编译器命令,将在下一期针对 XMLHttpRequest 的文章中详细讨论。这段代码的核心分为三步:

  1. 建立一个变量 xmlHttp 来引用即将创建的 XMLHttpRequest 对象。
  2. 尝试在 Microsoft 浏览器中创建该对象:
    • 尝试使用 Msxml2.XMLHTTP 对象创建它。
    • 如果失败,再尝试 Microsoft.XMLHTTP 对象。
  3. 如果仍然没有建立 xmlHttp,则以非 Microsoft 的方式创建该对象。

最后,xmlHttp 应该引用一个有效的 XMLHttpRequest 对象,无论运行什么样的浏览器。

发送请求并指定回掉函数:

function callServer() {
  
// Get the city and state from the web form
  var city = document.getElementById("city").value;
  
var state = document.getElementById("state").value;
  
// Only go on if there are values for both fields
  if ((city == null|| (city == "")) return;
  
if ((state == null|| (state == "")) return;
  
// Build the URL to connect to
  var url = "/scripts/getZipCode.php?city=" + escape(city) + "&state=" + escape(state);
  
// Open a connection to the server
  xmlHttp.open("GET", url, true);
  
// Setup a function for the server to run when it's done
  xmlHttp.onreadystatechange = updatePage;
  
// Send the request
  xmlHttp.send(null);
}

处理服务器响应:

function updatePage() {
  
if (xmlHttp.readyState == 4{
    
var response = xmlHttp.responseText;
    document.getElementById(
"zipCode").value = response;
  }

}

以上为ajax的初步知识,待续中....

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值