|
系列文章导航:
JavaScript学习笔记一——数据类型
JavaScript学习笔记二——函数
JavaScript学习笔记三——作用域
JavaScript学习笔记四——Eval函数
JavaScript学习笔记五——类和对象
JavaScript学习笔记六:prototype的提出
Javascript学习笔记七——原型链的原理
Javascript学习笔记八——用JSON做原型
Javascript学习笔记九——prototype封装继承
Javascript学习笔记十——网页运行原理
Javascript学习笔记十一——包装DOM对象
Javascript学习笔记十三——关于响应事件
Javascript学习笔记十二——Ajax入门
Ajax:Asynchronous Javascript And XML。写个简单的例子:
<body> <form id="form1" runat="server"> <div> <ASP:Label ID="LabelTime" runat="server">ASP:Label> div> form> <script type="text/Javascript"> if (!window.XMLHttpRequest) { window.XMLHttpRequest = function () { return new ActiveXObject("Microsoft.XMLHTTP"); }; } function UpdateClock() { var request = new XMLHttpRequest(); request.open("post", "TimeTest.ASPx", false); request.send(""); document.getElementById("LabelTime").innerText = request.responseText; } setInterval(UpdateClock, 1000); script>body>
而在另一个页面写下当前时间,这样就形成了一个钟表。
代码很简单,就是操纵一个XMLHttpRequest对象来获取服务器时间,然后更新时间。上面的代码在与服务器交互时,并没有页面整体刷新,而是局部刷新。
但是上面的代码在request.open时,最后一个参数为false,表示发出的XMLHttpRequest是同步的,由于Javascript是单线程的,所以在等待请求的过程中,线程会被阻塞,如果请求时间过长,浏览器会停止响应。
虽然Javascript是单线程的,但是XMLHttpRequest具备异步处理请求的能力。代码如下:
<body> <form id="form1" runat="server"> <div> <ASP:Label ID="LabelTime" runat="server">ASP:Label> div> form> <script type="text/Javascript"> if (!window.XMLHttpRequest) { window.XMLHttpRequest = function () { return new ActiveXObject("Microsoft.XMLHTTP"); }; } function AsynRequest() { var request = new XMLHttpRequest(); request.open("post", "TimeTest.ASPx", true); request.onreadystatechange = function () { if (request.readyState === 4) { UpdateClock(request.responseText); } }; request.send(""); } function UpdateClock(time) { document.getElementById("LabelTime").innerText = time; } setInterval(AsynRequest, 1000); script>body>
哎,没有智能提示的日子真不好过。
it知识库:Javascript学习笔记十二&mdash;&mdash;Ajax入门,转载需保留来源!
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。