87,923
社区成员
发帖
与我相关
我的任务
分享
var get = function () {
$.get("htmlpage.html", function (data, status) {
return data;
});
}
var test =get();
alert(test);
如果一定要用return语句返回ajax加载的数据,必须用同步模式async: false
var get = function () {
var rv;
$.ajax({
type: "GET",
url: "htmlpage.html",
async: false,
success: function (data, status) {
rv = data;
}
});
return rv;
}
但要注意同步模式会在加载时让浏览器处于假死状态。
如果一定要用return语句返回ajax加载的数据,必须用同步模式async: false
var get = function () {
var rv;
$.ajax({
type: "GET",
url: "htmlpage.html",
async: false,
success: function (data, status) {
rv = data;
}
});
return rv;
}
但要注意同步模式会在加载时让浏览器处于假死状态。
你要学会用回调函数。
必须改变get()函数的使用方式
当然这可能要修改你的整个程序系统
如原来
var test =get();
后面用到“test变量”的代码
。。。。。。。。。。。
。。。。。。。。。。。
必须改成
get(function(data){
var test = data;
后面用到“test变量”的代码
。。。。。。。。。。。
。。。。。。。。。。。
});
要用return语句返回ajax加载的数据,必须用同步模式async: false
但同步模式会让浏览器线程被锁死。
不想线程被锁死,就只有用异步。
但是异步模式是不能用return语句返回的,必须要改用回调函数。
如
var get = function (cf) {
$.get("htmlpage.html", function (data, status) {
cf(data);
});
}
get(function(test){
alert(test);
});
要用return语句返回ajax加载的数据,必须用同步模式async: false
但同步模式会让浏览器线程被锁死。
不想线程被锁死,就只有用异步。
但是异步模式是不能用return语句返回的,必须要改用回调函数。
如
var get = function (cf) {
$.get("htmlpage.html", function (data, status) {
cf(data);
});
}
get(function(test){
alert(test);
});