当前位置: 首页 > news >正文

在浏览器能运行的ajax方法,通用ajax请求方法封装,兼容主流浏览器

ajax简单介绍

没有AJAX会怎么样?普通的ASP.Net每次运行服务端方法的时候都要刷新当前页面。

假设没有AJAX,在youku看视频的过程中假设点击了“顶、踩”、评论、评论翻页,页面就会刷新,视频就会被打断。开发一个看效果:用播放视频(仅仅有支持html5的浏览器能播放)。然后放一个“赞”button的功能(赞的数量存到数据库),看没有ajax会打断视频。看优酷则不会。

AJAX是一种进行页面局部异步刷新的技术。

用AJAX向server发送请求和获得server返回的数据而且更新到界面中。不是整个页面刷新。而是在HTML页面中使用JavaScript创建XMLHTTPRequest对象来向server发出请求以及获得返回的数据。就像JavaScript版的WebClient一样,在页面中由XMLHTTPRequest来发出Http请求和获得server的返回数据,这样页面就不会刷新了。

XMLHTTPRequest是AJAX的核心对象

有些反复的东西,我们不希望每次使用的时候都自己手动再去又一次写一遍,或者又一次复制一遍,这时。我就须要对代码进行封装。

方法封装的原则:把不变的代码封装起来,把变的东西作为參数传递过去。

//url:ajax请求地址带须要传递的參数,onsuccess:请求成功后运行的js方法

function ajax(url, onsuccess)

{

var xmlhttp = window.XMLHttpRequest ?

new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); //创建XMLHTTP对象。考虑兼容性。XHR

xmlhttp.open("POST", url, true); //“准备”向server的GetDate1.ashx发出Post请求(GET可能会有缓存问题)。这里还没有发出请求

//DRY:不要复制粘贴代码

//AJAX是异步的,并非等到server端返回才继续运行

xmlhttp.onreadystatechange = function ()

{

if (xmlhttp.readyState == 4) //readyState == 4 表示server返回完毕数据了。之前可能会经历2(请求已发送,正在处理中)、3(响应中已有部分数据可用了。可是server还没有完毕响应的生成)

{

if (xmlhttp.status == 200) //假设Http状态码为200则是成功

{

onsuccess(xmlhttp.responseText);

}

else

{

alert("AJAXserver返回错误!");

}

}

}

//不要以为if (xmlhttp.readyState == 4) {在send之前运行!!!。

xmlhttp.send(); //这时才開始发送请求。并不等于server端返回。请求发出去了,我不等!

去监听onreadystatechange吧。

}

相关文章:

  • 魔兽怀旧服联盟服务器不稳定,魔兽世界怀旧服转服服务关闭最后一天,联盟部落新的对抗...
  • 华擎服务器主板 稳定性,【华擎X570 Steel Legend主板使用总结】设置|性能_摘要频道_什么值得买...
  • svn如何远程服务器文件,svn如何连接远程服务器
  • 深度学习分类类别不平衡_【图像分类】 关于类别不平衡那些事
  • rust怎么玩老版本dlc_《DNF》100级回归玩家怎么玩 100版本快速上手思路指引
  • 本行没有输入值结余隐藏_教你一键隐藏电脑里"不能说的秘密",你懂哦
  • backgroundworker 设置为 sta_wemos D1 arduino物联网开发板应用笔记8-STA模式下TCP Server编程...
  • 树莓派桌面没有时间_没有显示器可以使用树莓派么,初次安装过程中呢?
  • js自动回复富文本_JS实用功能-1、JS 富文本内容img图片自适应手机端
  • c语言股票最大收益_【热门提问】历史上每年都能取得正收益的基金有哪些?...
  • c语言-命令行选项_C语言知识点大纲整理,附赠经典例题
  • 曼秀雷敦搜索引擎营销方案_抖音运营营销策划方案包-22例
  • biginteger判断相等_BigInteger与BigDecimal
  • ecilisp在生成期间发生错误是怎么回事_最近有点耳鸣是怎么回事呢?
  • redis 备份导出rdb_【redis】redis持久化