您的位置:首页 > 其它

ajax同步、异步执行简单理解与证明

2014-12-01 18:09 513 查看
此理解范例代码来自前几篇随笔!

首先我们来先了解下AJAX:

Ajax:全称“Asynchronous Javascript and XML”(异步Javascript和XML),他是由Javascript+CSS+DOM+XMLHttpRequest的四种技术的结合,并且JS是Ajax的核心。jQuery将Ajax的实现变得更加轻松容易。Ajax就是我们常说的局部刷新!

重在实际操作练习一下!!!!!

在$.ajax()中我们可以常常看到async,这就是来指定ajax同步异步的,需要记忆一下:

记忆方法:

  sync英语中的意思是:“同步”、“同步的”、“同步处理”

  前面加个“a”,构成async英文中的意思是:“异步”

  再者给他指定true和false那就容易理解了:

    “async:true” 意思是:“异步”

    “async:false” 意思是:“同步”

分析async作用:

当“async:true”时,也就是异步执行ajax,所以不管ajax数据是否已经加载完成,ajax后面的语句都要执行!

当“async:false”时,也就是同步执行ajax,这是指必须等ajax数据加载完成,才可以执行ajax后面的语句!

注意:这里的ajax数据加载是指“$.ajax( 数据传输代码 );”部分!

证明方法及说明:

我们可以利用javascript中的“alert();”来证明,大家都知道,当alert弹出一个警告框的话,不点击确定就不会运行接下来的程序,所以我们可以在“$.ajax();”后面写个alert,再在“$.ajax();”里的success回调函数中写一个alert。设置async的值来看看两个alert的执行情况就可以证明出来同步还是异步了!我们来试试...

下面举例代码说明:

  同步证明(async:false):

Model:

public class TransportModelDataController : Controller
{
//
// GET: /TransportModelData/

public ActionResult Index()
{
return View();
}
public ActionResult getModelInfo(List<Model> model)
{
string rtoNumber = model[0].rtoNumber;
string modifier = model[0].modifier;
string comment = model[0].comment;
string approver = model[0].approver;

return Content("");
}

}


View Code
执行结果截图:这里我们可以看到两个alert都执行了,不过由于“$.ajax();”中的alert受数据加载延迟了一会时间,所以他执行的比“$.ajax();”后面的alert稍微晚一点,这就证明了异步



注意:同步和异步中的代码是相同的,唯一不同点就是View中“async”的值不同,分别为“false”、“true”!

说明不好的话望谅解,希望大家可以理解~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: