jqueryajax:想对代码过程进行排序吗
我通过ajax从php文件中获取数据。根据数据我需要做一些处理。我在代码中加入了一些警告,从中我意识到ajax之外的代码是在ajax获得数据之前执行的。我希望代码在从php文件接收数据后完成 代码: 警报的顺序是: 第一:“原始数据2” 第二:“原始数据1”jqueryajax:想对代码过程进行排序吗,ajax,jquery,Ajax,Jquery,我通过ajax从php文件中获取数据。根据数据我需要做一些处理。我在代码中加入了一些警告,从中我意识到ajax之外的代码是在ajax获得数据之前执行的。我希望代码在从php文件接收数据后完成 代码: 警报的顺序是: 第一:“原始数据2” 第二:“原始数据1” 一个选项是,我在success函数中包含处理代码,但我不能这样做,因为稍后我想放置一个逻辑,这样我就可以有一个数据的缓冲区(至少4-5个堆栈深度),因为我希望用户在处理当前数据的代码后立即获得新的数据,而不是等待通过php检索数据。ajax
一个选项是,我在
success
函数中包含处理代码
,但我不能这样做,因为稍后我想放置一个逻辑,这样我就可以有一个数据的缓冲区(至少4-5个堆栈深度),因为我希望用户在处理当前数据的代码后立即获得新的数据
,而不是等待通过php检索数据。ajax调用不会停止下一行执行,因此您必须执行以下操作:
$(function () {
var originalData="";
$.ajax({
url: 'data.php',
data: "",
dataType: 'text',
success: function(data)
{
originalData=data;
alert("originalData 1 "+ originalData);
myFunction();
}
});
function myfunction()
{
alert("originalData 2 "+ originalData);
...
Processing code
...
}
})) Ajax使用异步处理模型,一旦向服务器发送请求,客户端将执行下一条语句,而不等待响应返回。一旦服务器响应,将根据响应的状态调用success或failure回调
您需要使用来自ajax调用的数据将所有处理放在成功回调中
例:
Ajax使用异步处理模型,一旦向服务器发送请求,客户端将执行下一个语句,而不等待响应返回。您需要使用来自ajax调用的数据将所有处理放在成功回调中。。。。我无法将代码放入成功回调函数中。我希望在不使用回调函数中的代码的情况下也能这样做。您可以使用ajax提供的async:false
选项,但建议使用此选项,因为它将阻止浏览器线程,直到服务器返回响应(即:用户界面将不会被重新绘制,用户界面将在不允许任何用户交互的情况下冻结)完美。这正是我想要的。我想知道我在谷歌搜索时怎么会错过它。但我不建议任何人使用它
$(function () {
var originalData="";
$.ajax({
url: 'data.php',
data: "",
dataType: 'text',
success: function(data)
{
originalData=data;
alert("originalData 1 "+ originalData);
myFunction();
}
});
function myfunction()
{
alert("originalData 2 "+ originalData);
...
Processing code
...
}
$.ajax({
....
}).done(function(data) {
//To all you post processing here
}).fail(function(){
//Do your error handling here
});