我们已看到 AJAX 可被用来创建更多交互性的应用程序。
————————————————————————
AJAX Suggest实例
在下面的 AJAX 例子中,我们会演示当用户向一个标准的 HTML 表单中输入数据时网页如何与 web 服务器进行通信。
————————————————————————
First Name:
Suggestions:
————————————————————————
例子解释 - HTML表单
表单的 HTML 代码:
<form>
First Name:<input type="text" id="txt1" onkeyup="showHint(this.value)" />
</form>
<p>Suggestions: <span id="txtHint"></span></p>
正如您看到的,这是一个简单的带有名为 "txt1" 输入域的 HTML 表单。输入域的事件属性定义了一个由 onkeyup 事件触发的函数。
表单下面的段落包含了一个名为 "txtHint" 的 span,这个 span 充当了由 web 服务器所取回的数据的位置占位符。
当用户输入数据时,名为 "showHint()" 的函数就会被执行。函数的执行是由 "onkeyup" 事件触发的。另外需要说明的是,当用户在文本域中输入数据时把手指从键盘按键上移开时,函数 showHint 就会被调用。
————————————————————————
例子解释 - showHint() 函数
showHint() 函数是一个位于 HTML 页面 head 部分的很简单的 JavaScript 函数。
此函数包含以下代码:
function showHint(str)
{
if (str.length==0)
{
document.getElementById("txtHint").innerHTML="";
return;
}
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("您的浏览器不支持AJAX!");
return;
}
var url="gethint.asp";
url=url+"?q="+str;
url=url+"&sid="+Math.random();
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}
每当有字符输入文本框时,此函数就会执行。
假如文本域中存在某些输入,函数就会执行:
- 定义回传数据的服务器的 url(文件名)
- 使用文本框的内容向 url 添加参数(q)
- 添加一个随机的数字,以防止服务器使用某个已缓存的文件
- 创建一个 XMLHTTP 对象,并告知此对象当某个改变被触发时执行名为 stateChanged 的函数
- 向服务器发送一个 HTTP 请求
- 如果输入域为空,此函数仅仅会清空 txtHint 占位符的内容
————————————————————————
例子解释 - GetXmlHttpObject() 函数
上面的例子可调用名为 GetXmlHttpObject() 的函数。
此函数的作用是解决为不同浏览器创建不同的 XMLHTTP 对象的问题。
这是此函数的代码:
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
————————————————————————
例子解释 - stateChanged() 函数
stateChanged() 函数包含下面的代码:
function stateChanged()
{
if (xmlHttp.readyState==4)
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText;
}
}
每当 XMLHTTP 对象的状态发生改变时,stateChanged() 函数就会执行。
当状态变更为 4(“完成”)时,txtHint 占位符的内容就被响应文本来填充。
分享到:
相关推荐
Ajax中的高级请求和响应 除了基本的GET和POST请求,Ajax还可以支持PUT、DELETE等HTTP方法,用于更新和删除资源。此外,可以使用`setRequestHeader()`设置自定义的HTTP头部,比如`Content-Type`,来适应不同的数据...
比如.ajaxComplete()——请求完成时.ajaxError()——请求失败时.ajaxSend()——在Ajax请求发送时附加一个function去执行.ajaxStart()——请求开始时,.ajaxStop()——请求结束时.ajaxSuccess()——请求成功时.load...
3. **Controls**:DWR还提供了丰富的UI控件,如表格、树形结构等,这些控件可以直接与服务器进行数据交换,无需手动处理Ajax请求和响应。 4. **Caching**:DWR支持缓存策略,可以有效地减少网络传输,提高性能。 #...
分页则可以通过设置每页显示的许愿数量,结合Ajax请求不同页码的数据来实现。 最后,考虑到安全性,前端需要对用户输入进行验证,防止SQL注入等攻击。同时,服务器端也要进行数据校验和过滤,确保数据安全。 综上...
在"Ajax征服——Ajax小偷模块 源码"中,我们可能会涉及到以下几个关键知识点: 1. **XMLHttpRequest对象**:这是Ajax的基础,用于在后台与服务器进行通信。通过创建XMLHttpRequest实例,我们可以打开到服务器的连接...
2. **安全问题**:由于AJAX请求仍然遵循同源策略,跨域请求需要服务器端设置CORS头。 3. **SEO挑战**:搜索引擎爬虫可能无法抓取通过AJAX加载的内容,影响页面的搜索引擎排名。 **六、现代Web中的AJAX** 随着Fetch...
1. "gethint.asp":这很可能是ASP服务器端的脚本文件,负责接收前端发送的Ajax请求,处理业务逻辑,例如查询数据库等,并返回相应的数据。 2. "index.html":这是项目的主页面,可能包含HTML结构以及用于发起Ajax...
- **后端处理**:服务器端接收并处理Ajax请求,可能涉及数据库操作,如存储新留言、检索旧留言等。 - **动态更新**:接收到服务器响应后,JavaScript将新数据插入到页面的适当位置,更新留言列表。 3. **Ajax请求...
### 学习Ajax实例——Struts2AjaxDemo 在Struts2框架中,我们可以结合Ajax来实现动态页面更新。Struts2提供了内置的Ajax支持,通过使用`struts2-jquery-plugin`插件或者`struts2-convention-plugin`,可以简化Ajax...
4. **Vue.js的Axios插件**:Vue生态中的常用插件,结合Vue的组件化特性,方便地处理Ajax请求。 **四、Ajax案例分析** 1. **无限滚动**:在新闻网站或社交媒体中,当用户滚动到底部时,通过Ajax加载更多内容,无需...
**Ajax 实例大全详解** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。...这些实例涵盖了Ajax的基础用法到高级技巧,是学习和研究Ajax技术的宝贵资源。
2. **Atlas API**:熟悉Atlas提供的各种函数和方法,如`atlas.ajax.send()`,用于发起Ajax请求,以及`atlas.util.parseXML()`,用于解析服务器返回的XML数据。 3. **异步通信**:学习如何在不阻塞用户界面的情况下...
这个"ASP.NET源码——Ajax之用户注册实例.zip"文件包含了一个具体的用户注册示例,它利用了Ajax技术来实现无刷新的交互体验。 Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够...
**AJAX——新手快车道** AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新,大大提升了用户...
jQuery库提供了一个更简单的API来处理Ajax请求,例如: ```javascript $.ajax({ url: 'http://example.com/data', type: 'GET', success: function(data) { $('#result').html(data); }, error: function() {...
`login.jsp`文件可能是处理Ajax请求的服务器端脚本,例如使用Java Servlet、PHP或其他后端语言编写。 总结来说,这个Ajax注册实例展示了如何使用Ajax实现客户端与服务器的异步通信,以及如何处理用户的注册请求。...
本实例"PHP实例开发源码——PHP+Ajax无刷新文件上传代码.zip"着重讲解了如何利用PHP和Ajax技术实现文件的无刷新上传,极大地提升了用户体验。 首先,我们需要了解PHP在文件上传中的基础操作。PHP提供了`$_FILES`...
下面是一个简单的Ajax GET请求实例: ```javascript var xhr = new XMLHttpRequest(); xhr.open('GET', 'data.json', true); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === ...