AJAX和回调函数
AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。 通过 AJAX,JavaScript 无需等待服务器的响应,而是:
AJAX - 创建 XMLHttpRequest 对象xmlhttp=newXMLHttpRequest(); AJAX - 向服务器发送请求请求如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open() 和 send() 方法:
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send(); 方法
AJAX - 服务器 响应如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。
AJAX - onreadystatechange 事件请求被发送到服务器时,我们需要执行一些基于响应的任务。 每当 readyState 改变时,就会触发 onreadystatechange 事件。 readyState 属性存有 XMLHttpRequest 的状态信息。 下面是 XMLHttpRequest 对象的三个重要的属性:
在 onreadystatechange 事件中,我们规定当服务器响应已做好被处理的准备时所执行的任务。 当 readyState 等于 4 且状态为 200 时,表示响应已就绪
例子: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script> function loadXMLDoc() { var xmlhttp; if (window.XMLHttpRequest) { // IE7+,Firefox,Chrome,Opera,Safari 浏览器执行代码 xmlhttp=new XMLHttpRequest(); } else { // IE6,IE5 浏览器执行代码 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","/try/ajax/ajax_info.txt",true); xmlhttp.send(); } </script> </head> <body> <div id="myDiv"><h2>使用 AJAX 修改该文本内容</h2></div> <button type="button" onclick="loadXMLDoc()">修改内容</button> </body> </html>
使用回调函数回调函数是一种以参数形式传递给另一个函数的函数。(黄色部分应该为回调函数) (wiki上的解释:In computer programming,acallback is any executable code that is passed as an argument to other code,which is expected to call back (execute) the argument at a given time. This execution may be immediate as in asynchronous callback,or it might happen at a later time as in anasynchronous callback.) 如果您的网站上存在多个 AJAX 任务,那么您应该为创建 XMLHttpRequest 对象编写一个标准的函数,并为每个 AJAX 任务调用该函数。 该函数调用应该包含 URL 以及发生 onreadystatechange 事件时执行的任务(每次调用可能不尽相同) 因为可以把调用者与被调用者分开,所以调用者不关心谁是被调用者。它只需知道存在一个具有特定原型和限制条件的被调用函数。(在这里调用的是myFunction,被调用的是loadXMLDoc) <!DOCTYPE html> <html> <head> <script> var xmlhttp; function loadXMLDoc(url,cfunc) { if (window.XMLHttpRequest) {// IE7+,Safari 代码 xmlhttp=new XMLHttpRequest(); } else {// IE6,IE5 代码 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=cfunc; xmlhttp.open("GET",url,true); xmlhttp.send(); } function myFunction() { loadXMLDoc("/try/ajax/ajax_info.txt",153);">function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } }); } </script> </head> <body> <div id="myDiv"><h2>使用 AJAX 修改文本内容</h2></div> <button type="button" onclick="myFunction()">修改内容</button> </body> </html> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- oracle sql loader命令与ctl写法
- ruby-on-rails-5 – 在Rails 5中为form_with设置local:tru
- cocos2d-x3.3 scrollviewdelegate不是类名或结构名 问题
- ios – 如何定义以编程方式和IB方式提供的自定义颜色?
- c# – 带有angularjs的$http请求正在返回我的html doc
- flex builder 如何 引用 flash的组件
- ruby-on-rails – 捆绑安装没有从我的更新后挂钩运行
- JSONObject 保存和传送 数组数据 ,如int[] ,double[] ,Str
- react native动画
- DeepLearing学习笔记-改善深层神经网络(第三周- 超参数调试