AJAX怎么实现异步刷新和局部刷新

这次给大家带来AJAX怎么实现异步新和局部刷新,AJAX实现异步刷新和局部刷新的注意事项有哪些,下面就是实战案例,一起来看一下。

Overriew: onReadyStateChange被回调函数赋值,则能实现异步调用,回调函数直接操作DOM,则能实现局部刷新。那么XMLHttpRequest的onReadyStateChange如何知道服务ready了呢?状态如何change了呢(观察者模式)?则是通过客户端对服务的状态询问(定期轮询)所实现的。

详解:

1.  XMLHttpRequest 负责与服务器端的通讯,其内部有很多重要的属性:readyStatus=4,status=200等等。当XMLHttpRequest的整体状态并且保证它已经完成(readyStatus=4),即数据已经发送完毕。然后根据服务器的设定询问(类似于客户端会轮询服务器的返回状态,仍然是http短连接,并非长连接的服务器端push)请求状态,如果一切已经就绪(status=200),那么就执行需要的操作。

操作一般就是直接操作DOM,所以AJAX能做到所谓的“无刷新”用户体验。

document.getElementById("user1").innerHTML = "数据正在加载...";      if (xmlhttp.status == 200) {        document.write(xmlhttp.responseText);      }

登录后复制

2.  那么在AJAX客户端如何做到的异步呢?实际上就是Javascript的回调函数起的作用

提供一个回调JavaScript函数,一旦服务器响应可用,该函数就被执行

业务函数:

function castVote(rank) { var url = "/ajax-demo/static-article-ranking.html"; var callback = processAjaxResponse; executeXhr(callback, url);}需要异步通讯的函数: function executeXhr(callback, url) { // branch for native XMLHttpRequest object if (window.XMLHttpRequest) {  req = new XMLHttpRequest();  req.onreadystatechange = callback;  req.open("GET", url, true);  req.send()(null); } // branch for IE/Windows ActiveX version else if (window.ActiveXObject) {  req = new ActiveXObject("Microsoft.XMLHTTP");  if (req) {   req.onreadystatechange = callback;   req.open("GET", url, true);   req.send()();  } }}req.onreadystatechange = callbackreq.open("GET", url, true)

登录后复制

第一行定义了JavaScript回调函数,一旦响应就绪它就自动执行,而req.open()方法中所指定的“true”标志说明想要异步执行该请求。

一旦服务器处理完XmlHttpRequest并返回给浏览器,使用req.onreadystatechange指派所设置的回调方法将被自动调用。

回调函数:

function processAjaxResponse() { if (req.readyState == 4) {  // only if "OK"  if (req.status == 200) {   document.getElementById("user1").innerHTML = req.responseText;  } else {   alert("There was a problem retrieving the XML data:" + req.statusText);  } }}

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

laypage分页插件+ajax怎样做出异步分页

JS+ajax实现php异步提交表单

以上就是AJAX怎么实现异步刷新和局部刷新的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2775066.html

(0)
上一篇 2025年3月8日 14:17:49
下一篇 2025年3月8日 14:18:01

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • AJAX实现显示页面后才加载

    这次给大家带来AJAX实现显示页面后才加载,AJAX实现显示页面后才加载的注意事项有哪些,下面就是实战案例,一起来看一下。 按需加载的优势:在实际调查中发现,很多的网民在游览网站时具有明确的指向性,往往在进入主页后直接搜索进入自己需要的商品…

    2025年3月8日 编程技术
    200
  • ajax不刷新的情况下省市县三级联动

    这次给大家带来ajax不刷新的情况下省市县三级联动,ajax不刷新实现省市县三级联动的注意事项有哪些,下面就是实战案例,一起来看一下。 本文实例为大家分享了ajax实现无刷新省市县三级联动的具体代码,供大家参考,具体内容如下 效果图: 实现…

    2025年3月8日
    200
  • Ajax怎么验证数据库里用户的唯一性

    这次给大家带来Ajax怎么验证数据库里用户的唯一性,Ajax验证数据库里用户唯一性的注意事项有哪些,下面就是实战案例,一起来看一下。 针对初学者,学习Ajax验证用户的唯一性实战是为了巩固Ajax,Jquery,Json与Struts2基础…

    2025年3月8日 编程技术
    200
  • AJAX实现无限分级uitree数据的增删改

    这次给大家带来AJAX实现无限分级uitree数据的增删改,AJAX实现无限分级uitree数据的增删改注意事项有哪些,下面就是实战案例,一起来看一下。 阅读目录 •无限分级•jstree插件•Demo•创建Region实体•满足jstre…

    2025年3月8日
    200
  • 关于Ajax的探讨和研究

    这次给大家带来关于Ajax的探讨和研究,关于Ajax探讨和研究的注意事项有哪些,下面就是实战案例,一起来看一下。 1.ajax跨域传递值是所需要的回传的类型为jsonp $.ajax({url: “http://…….”,type:…

    编程技术 2025年3月8日
    200
  • ajax回调打开新窗体时怎样不被浏览器拦截

    这次给大家带来ajax回调打开新窗体时怎样不被浏览器拦截,ajax回调打开新窗体时不被浏览器拦截的注意事项有哪些,下面就是实战案例,一起来看一下。 ajax回调打开新窗体防止浏览器拦截,就这么做! 问题剖析: function click_…

    编程技术 2025年3月8日
    200
  • 实现ajax的3种方法

    这次给大家带来实现ajax的3种方法,实现ajax的注意事项有哪些,下面就是实战案例,一起来看一下。 Ajax:  Asynchronous JavaScript and Xml , 异步js脚本和xml , 常用来实现页面局部的异步刷新,…

    2025年3月8日
    200
  • Ajax怎么实现异步用户名验证

    这次给大家带来Ajax怎么实现异步用户名验证,Ajax实现异步用户名验证的注意事项有哪些,下面就是实战案例,一起来看一下。 先看看布局比较简单,效果图如下 ajax功能:     当用户填写好账号切换到密码框的时候,使用ajax验证账号的可…

    2025年3月8日
    200
  • 构造AJAX实现表单JSON转换的方法

    这次给大家带来构造AJAX实现表单JSON转换的方法,构造AJAX实现表单JSON转换的注意事项有哪些,下面就是实战案例,一起来看一下。 ajax提交服务器数据, 整理一下转换方法。 HTML: 登录后复制 1.表单元素转QueryStri…

    编程技术 2025年3月8日
    200
  • SpringMVC环境Ajax异步请求JSON的方法

    这次给大家带来SpringMVC环境Ajax异步请求JSON的方法,SpringMVC环境Ajax异步请求JSON的注意事项有哪些,下面就是实战案例,一起来看一下。 一 环境搭建 首先是常规的spring mvc环境搭建,不用多说,需要注意…

    2025年3月8日
    200

发表回复

登录后才能评论