JavaScript实现Ajax总结
作者:myvin 发布时间:2024-05-06 10:08:28
标签:javascript,ajax
ajax应用非常普及,ajax的优点大家都知道,具体就不多说了,其缺点还真不少,比如破坏浏览器的back功能,同一个url打开的界面并不是完全相同,还有安全性能等方面,至于有这么多的缺点,也阻止不了大家使用ajax的步伐~~~
这里以表单为例说一下实现Ajax的步骤:
1.先从表单中获取我们需要的数据
2.然后建立相应的URL
3.设置onreadystatechange函数
4.打开连接
5.发送请求
首先是关于xrh对象的建立。
function creatXhr(){
var xhr=null;
if(window.XMLHttpRequest){
xhr=new XMLHttpRequest();
}else{
xhr=new ActiveXObject("Microsoft.xhr");
}
}
稍完整的可以这样写:
function creatXhr(){
var xhr=null;
try{
xhr=new ActiveXObject("Msxml2.XMLHTTP");
}catch (e){
try {
xhr=new ActiveXObject("Microsoft.XMLHTTP");
}catch (e2){
xhr=false;
}
}
if(!xmlHttp && typeof XMLHttpRequest != 'undefined') {
xhr=new XMLHttpRequest();
}
}
以上对ie和非ie浏览器多做了兼容处理。
然后就该发送Ajax请求了,下面以一个表单项country为例:
function callReqest(){
var country=document.getElementById('country').value;
if((country==null)||(country==''))
return;
var url='example.php?country='+encodeURIComponent(country);
xhr.onreadystatechange=update;
xhr.open('GET',url,true);
xhr.send(null);
}
以上获取了一个country表单项, onreadystatechange 函数是readystate发生变化时触发的事件,可以以此来判断是否需要发生动作。
onreadystatechange 函数如下:
function onreadystatechange(){
if((xhr.onreadystatechange==4)&&((xhr.state==200)||((xhr.state>200)&&(xhr.state<300)))){
document.getElementById('countryCode').value=xhr.responseText;
}
}
在 onreadystatechange 等于4的时候,说明资源已然完全下载到客户端了,可以使用了,同时查看状态码,在200到300之间,左闭右开,即可进行刷新,这里只是简单的将responseText给了一个表单项,当然也可以返回XML等相关数据,相关内容可查看其他相关介绍。
最后,至于触发Ajax,可以在表单的country里面添加onChange事件,这样用户在输入表单时就会触发Ajax了。
ps:javascript ajax小结
1.创建XHR对象
2、XHR对象的属性和方法
3、readyState属性


猜你喜欢
- 目前,很多互联网应用程序都提供了全文搜索功能,用户可以使用一个词或者词语片断作为查询项目来定位匹配的记录。在后台,这些程序使用在一个SELE
- 我在工作的时候,在测试环境下使用的数据库跟生产环境的数据库不一致,当我们的测试环境下的数据库完成测试准备更新到生产环境上的数据库时候,需要准
- 1、初始化在这章,你将学到Flask应用程序的不同部分。同时,你将编写和运行你的第一个Flask web应用程序。所有的Flask应用程序都
- 数据库相关错误的解决办法错误一:数据库连接池超过限制SqlAlchemy QueuePool limit overflow造成连接数超过数据
- Python 文件处理注意事项总结文件处理在编程中是常见的操作,文件的打开,关闭,重命名,删除,追加,复制,随机读写非常容易理解和使用。需要
- //继承function Person(name,sex){ this.name=name;
- 很简单的方法,但很实用。用过新浪邮箱的朋友应该会知道此脚本的效果。如果您提交的数据处理时间很长,用这个做为提示很不错的.将下面的代码复制到&
- 在使用AJAX开发网站时,经常有朋友遇到乱码的问题,而且一下子难以找到解决方法。其实解决AJAX中文乱码问题很简单。1、服务端程序:<
- 环境:Anaconda自带的编译器——Spyder最近才开使用conda,发现conda 就是 yyds,爱啦~一、Tensor(张量)im
- 接着上篇文章《解析SQL 表结构信息查询 含主外键、自增长》里面提到了INFORMATION_SCHEMA视图,其实到了SQL 2005微软
- 得益于 Python 的自动垃圾回收机制,在 Python 中创建对象时无须手动释放。这对开发者非常
- 微软上周发布了一份关于 Windows Internet Explorer 8 浏览器(以下简称为 IE 8)性能优化的白皮书《Window
- 1.消息丢失1.生产者发送失败所有消息队列都可能发生的问题生产者发送消息后,队列未成功接收(网络原因或其他)而生产者不知情,消息丢失生产者发
- 本文实例讲述了python中os操作文件及文件路径的方法。分享给大家供大家参考。具体分析如下:python获取文件上一级目录:取文件所在目录
- python封装利用begin end执行多条sql因为业务需求,优化模型运行时间。考虑到sql语句每一次执行都要建立连接,查询,获取数据耗
- pandas创建series方法print("====创建series方法一===")dic={"a"
- 120726 11:57:22 [Warning] 'user' entry 'root@localhost.loc
- 上一章节我们学习了基础的定义 PPT 的方法以及每一页中的样式,这节课我们将真正的在 PPT 中添加内容,学习一下 pptx 的段落的使用。
- 哪行哪业都少不了基本功,都说“马步”要扎得稳。在都快说烂了的以目标用户为中心设计的今天,还是要勤练基本功的。不多说了,先了解下“设计的3个C
- 本文以sql2012为例第一步,(查询日志中文件名和大小):USE 数据库名GOSELECT file_id, name,size,* FR