AJAX 异步设置为 false 阻止页面,否则无法获取该值
AJAX async set to false block the page, otherwise can not get the value
我在im中使用ajax请求.js所以它会从js调用我的PHP服务器并获得反馈。但是,我需要根据 .ajax 函数的回调更新一个变量,如下所示:
var picture = "<img src='https://www.123.com/pictures/unknown.jpg' width='30' />";
$.ajax({'type':'GET', 'async':false,'url':'https://www.123.com/site/getpic?username=' + username,
'success':function(callback){
picture = "<img src='" + callback + "' width='30' />";
} //ajax success
}); //ajax
看到如果我删除"async:false",变量图片将不会更新,因为 ajax 是异步的,如果我像这样禁用它,即使我加载整个 im.js async,它也会阻止整个页面继续。
请帮助:如何更新变量,同时不要阻止页面?
谢谢
您仍然可以从异步成功处理程序回调中设置变量,但任何立即需要该变量值的代码也必须在回调中或从回调调用。 这就是处理异步响应的方式。
var picture = "<img src='https://www.123.com/pictures/unknown.jpg' width='30' />";
$.ajax({type:'GET',
async:true,
url:'https://www.123.com/site/getpic?username=' + username,
success:function(response){
picture = "<img src='" + response + "' width='30' />";
// code that uses this picture value immediately must be located here
// or called from here
}
});
// code that uses the new value of the picture variable cannot be here
// because the variable's new value is not set yet
// because the ajax call has not yet completed and thus has not called its
// success handler yet
相关文章:
- AngularJS - 嵌套的ng-重复选择/选项,获取/设置所选值
- 如何获取/设置高图表 x轴步长
- locaction.reload(true) 会导致强制获取 - 设置 .src 时如何执行此操作
- Jquery:范围滑块:如何获取设置的范围值
- 通过 Javascript: 问题获取/设置 CSS 属性值
- 如何使用原型获取/设置 cookie.js
- 获取/设置在 Select2 倍数中单击的选项的值
- 获取/设置地图图像鼠标位置
- 如何获取/设置当前页面URL(适用于时空浏览器版本)
- 使用this from函数在作用域上获取/设置角度变量
- 获取/设置当前@关键帧百分比/更改关键帧
- 是否可以获取/设置现有路径的半径.圆
- jQuery UI菜单获取/设置活动UI菜单项
- 从javascript中获取/设置asp:文本框值
- 无法在 java 中从应用程序的服务器端获取/设置 cookie
- 获取/设置数值到localstorage
- Jquery获取/设置href协议
- 如何获取/设置表中的滚动位置
- 在面向对象JavaScript中获取/设置
- 获取/设置iframe内容的问题