开发工具与关键技术:Visual Studio、post
作者:幻奏
撰写时间:2019.7.22
其实关于异步这个问题我还不太懂,因为我还是一只萌新嘛,所以我在做项目时就出现了一个关于异步的问题。
我做的项目是一个客房管理系统,我需要把所有的房间都显示到页面上,所以我就用了for循环一个一个地添加样式到页面。当我以为我做好的时候才发现,客人类别的图标没法显示出来,所以我在for循环里面写了一个post请求,然后把我要的数据都查询出来。
想是很简单的,当我写好post请求后,一运行,好,问题来了,本来我显示的房间是按照它的房号一个一个的添加的,单我写了post请求后,那些用到post请求的房间都跑到最后了,这个问题让我一脸懵逼。
后来,我在网上查到了原来是post请求异步的问题,因为post默认为是异步请求,所以我们会发现,本来要求请求马上就出现,可是异步会导致它到后面再执行,这样就出问题了。
要解决这个问题就要把post请求改为同步,这样它就能按顺序进行下去了。然后,我发现了$.post并没有异步方式的设置,所以我就在post请求的上面加上了它:
$.ajaxSetup({ async: false });
没错,加上它后你的post请求从此不再是异步的辣,它就可以和你的for循环神马的一起运行下去了,就不会出现最后再提交的问题了。
其实还有另一个方法,那个方法嘛用的是最原始的ajax请求,把async设置为false
这个方法也可以的。
如果用了这个方法的话,它可以同步提交,也可以异步提交。嗯,我懂的就这些了,有那里不对的话我会改的,如果你们知道其它的知识的话,我很乐意听你们的讲解的,毕竟我还是萌新嘛。