Ajax原理与图解
发布日期:2021-08-17 20:35:05 浏览次数:3 分类:技术文章

本文共 1028 字,大约阅读时间需要 3 分钟。

Ajax原理

Ajax 的全称是Asynchronous JavaScript and XML。

Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。这其中最关键的一步就是从服务器获得请求数据。

实现原理图如下:

 

代码:

<script type="text/javascript">   

var xmlHttp=null;   
try   
{   
    xmlHttp=new XMLHttpRequest();   
}   
catch (e)   
{   
    try   
    {   
        xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");   
    }   
    catch (e)   
    {   
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");   
    }   
}   
  
function makerequest(serverPage,objId)   
{   
    var obj = document.getElementById(objId);   
    xmlHttp.open("GET", serverPage);   
    xmlHttp.onreadystatechange = function()    
    {   
        if (xmlHttp.readyState == 4 && xmlHttp.status == 200)    
        {   
            obj.innerHTML = xmlHttp.responseText;   
        }   
    }   
    xmlHttp.send(null);   
}   
</script> 

Ajax的优点:

1.最大的一点是页面无刷新,给用户的体验非常好。

2.使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的响应能力。

3.ajax的原则是“按需取数据”,可以最大程度的减少冗余请求,减少服务器的负荷。

 

Ajax的缺点:

1.破坏浏览器后退按钮的正常行为。在动态更新页面后,用户无法回到前一个页面的状态,这是因为浏览器只能记下历史记录中的静态页面。

2.使用JavaScript作Ajax的引擎,JavaScript的兼容性和Debug本身就让人头大。

3.破坏多层的系统架构(前端直接访问数据库)。

 

Ajax的应用场景:

1.文本输入提示(自动完成)的场景

2.对数据进行联动过滤的场景

转载于:https://www.cnblogs.com/qiushuiwanyue/p/6061052.html

转载地址:https://blog.csdn.net/weixin_30867015/article/details/96630702 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:腾讯2013年实习生笔试题目
下一篇:bzoj1109: [POI2007]堆积木Klo

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年03月22日 21时39分17秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

Spring的AOP(面向切面编程)的XML开发以及Spring的AOP的底层原理(案例+解析) 2019-04-26
Spring的切入点AspectJ表达式(解析) 2019-04-26
Spring的AOP的注解开发,基于AspectJ的注解开发 2019-04-26
Spring的事务管理(解析+转账案例) 2019-04-26
SSH项目整合:无障碍整合Struts2+Spring+Hibernate(详解+案例+源代码) 2019-04-26
六种发送加密邮件的最好方式(The 6 best ways to send an encrypted email) 2019-04-26
优步在开源平台上提供了Pirhana,代码库中删除过时代码的工具 2019-04-26
“小丑”(Joker)Android恶意窃听软件 2019-04-26
SSH整合:将hibernate的配置交给Spring管理+Hibernate的模板的使用 2019-04-26
SSH框架整合:延迟加载问题的解决 2019-04-26
SVN:自己搭建源代码的版本控制系统(服务端VISUALSVN+客户端TortoiseSVN安装和使用)模拟客户使用的过程(使用大全) 2019-04-26
环境搭建 + 用户登录注册| CRM客户关系管理系统项目实战一(Struts2+Spring+Hibernate)解析+源代码 2019-04-26
Java Web项目源代码|CRM客户关系管理系统项目实战(Struts2+Spring+Hibernate)解析+源代码+教程 2019-04-26
客户管理模块(保存查询客户)| CRM客户关系管理系统项目实战二(Struts2+Spring+Hibernate)解析+源代码 2019-04-26
客户管理模块(文件上传-图片/删除-修改客户/条件查询客户)| CRM客户关系管理系统项目实战三(Struts2+Spring+Hibernate)解析+源代码 2019-04-26
联系人管理-查询列表| CRM客户关系管理系统项目实战四(Struts2+Spring+Hibernate)解析+源代码 2019-04-26
联系人管理-添加/修改/删除联系人/条件查询/解决与客户之间的问题| CRM客户关系管理系统项目实战五(Struts2+Spring+Hibernate)解析+源代码 2019-04-26
联系人管理-抽取通用DAO| CRM客户关系管理系统项目 实战六(Struts2+Spring+Hibernate)解析+源代码 2019-04-26
Exception Report node to traverse cannot be null! The server encountered an unexpected condition 2019-04-26
联系人管理-客户拜访记录| CRM客户关系管理系统项目 实战七(Struts2+Spring+Hibernate)解析+源代码 2019-04-26