热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ajax简单使用例子

Ajax(AsynchronousJavascript+XML)是一种以异步方式从服务器获取数据的技术,用户单击了一个链接,不用重新载入整个页面,也能够获取新的数据。创建XHR(XMLHttpRequest的简称)对象的时候,IE浏览器和非IE浏览器是不同的:varxhr;xhrnewActiveXObje

Ajax(Asynchronous Javascript+XML)是一种以异步方式从服务器获取数据的技术,用户单击了一个链接,不用重新载入整个页面,也能够获取新的数据。

创建XHR(XMLHttpRequest的简称)对象的时候,IE浏览器和非IE浏览器是不同的:

var xhr;

xhr = new ActiveXObject('Microsoft.XMLHTTP');   //IE浏览器

xhr = new XMLHttpRequest();     //非IE浏览器

open()函数

eg.

xhr.open("get","example.php",false);

第一个参数:"get"、"post"等

第二个参数:URL,相对于当前页面或绝对路径

第三个参数:true/false,是否异步发送请求

send()函数

必须有一个参数,作为请求主体发送的数据,不需要通过请求主体发送数据必须传入null

XHR对象的属性

responseText:作为相应主体被返回的文本

responseXML:如果响应内容是"text/xml"或"application/xml",这个属性中将保存包含着相应数据的XML文档,对于非XML数据,属性值为null

status:响应的HTTP状态

200-成功

304-请求的资源没有被修改,可以使用浏览器缓存的版本

statusText:HTTP的状态说明

readyState:请求/响应过程中的当前活动阶段

0-未初始化,尚未调用open()方法

1-启动。已调用open()方法,尚未调用send()方法

2-发送。已调用send()方法,还没收到响应

3-接收。已接收到部分响应数据

4-完成。已经全部接收

只要readyState属性值发生改变,都会触发一次readyStatechange事件,触发函数例子:

xhr.Onreadystatechange= function(){do something...};

abort()函数

接收到响应之前用于取消异步请求

下面的例子是跟着php100视频教程写的,这是个很好的学PHP的教程,视频可以到php100网站下载。

这里用了3个文件:index.html , ajax.js , for.php

点击index.html的链接,会触发ajax.js中的Fetch函数,然后ajax.js中的Fetch函数取到for.php中的数据之后,显示在index.html页面上。

index.html文件:




    
    
    


    1
    2
    3



ajax.js文件:

var xmlHttp;
function S_xmlhttprequest()
{
    if(window.ActiveXObject)
        {xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');//alert("IE浏览器!");
        }
    else if(window.XMLHttpRequest)
        {xmlHttp = new XMLHttpRequest();//alert("非IE浏览器!");
        }
}
function Fetch(url)
{
    S_xmlhttprequest();
    xmlHttp.open("get","for.php?id="+url,true);
    xmlHttp.onreadystatechange = Response;
    xmlHttp.send(null);
}
function Response()
{
    if(xmlHttp.readyState == 1)
    {
        document.getElementById('show').innerHTML = "loading...";
    }
    if(xmlHttp.readyState == 4)
    {
       if(xmlHttp.Status == 200)
           {
           var v = xmlHttp.responseText;
           document.getElementById("show").innerHTML = v;
           }
    }
}

for.php文件:

$id = $_GET['id'];
sleep(2);  //停顿两秒,显示loading……效果,但是只有IE9可以,Chrome和Opera不行,不知为何
if($id)
{
    for($i = 0; $i < 10; $i++)
         echo $id;
}
exit();
?>

上面例子在IE9中测试没问题,但在Chrome和Opera中点了1之后要么就没反应,要么就一直显示loading,不知是什么情况,还没找到问题所在。


推荐阅读
  • ServletContext接口在Java Web开发中扮演着重要角色,它提供了一种方式来获取关于整个Web应用程序的信息。通过ServletContext,开发者可以访问初始化参数、共享数据以及应用资源。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 本文详细介绍如何利用已搭建的LAMP(Linux、Apache、MySQL、PHP)环境,快速创建一个基于WordPress的内容管理系统(CMS)。WordPress是一款流行的开源博客平台,适用于个人或小型团队使用。 ... [详细]
  • 一个登陆界面
    预览截图html部分123456789101112用户登入1314邮箱名称邮箱为空15密码密码为空16登 ... [详细]
  • 理解文档对象模型(DOM)
    本文介绍了文档对象模型(DOM)的基本概念,包括其作为HTML文档的节点树结构,以及如何通过JavaScript操作DOM来实现网页的动态交互。 ... [详细]
  • 本文将详细介绍如何在ThinkPHP6框架中实现多数据库的部署,包括读写分离的策略,以及如何通过负载均衡和MySQL同步技术优化数据库性能。 ... [详细]
  • 本文探讨了如何通过WebBrowser控件在用户点击输入框时自动显示图片验证码。该过程可能涉及JavaScript事件的触发与响应。 ... [详细]
  • 深入分析十大PHP开发框架
    随着PHP技术的发展,各类开发框架层出不穷,成为了开发者们热议的话题。本文将详细介绍并对比十款主流的PHP开发框架,旨在帮助开发者根据自身需求选择最合适的工具。 ... [详细]
  • Microsoft即将发布WPF/E的CTP(Community Technology Preview)和SDK,标志着RIA(Rich Internet Application)技术的新里程碑。更多详情及下载链接请参见MSDN官方页面。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 本文探讨了在不使用服务器控件的情况下,如何通过多种方法获取并修改页面中的HTML元素值。除了常见的AJAX方式,还介绍了其他可行的技术方案。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文详细介绍超文本标记语言(HTML)的基本概念与语法结构。HTML是构建网页的核心语言,通过标记标签描述页面内容,帮助开发者创建结构化、语义化的Web页面。 ... [详细]
author-avatar
无神ABC_958
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有