仅限Chrome:ajax冻结了我的JavaScript执行
Chrome only : ajax freezing my javascript execution
Ajax的意思是异步的,但它似乎停止了我的javascript执行,或者至少暂停它并在响应时恢复。
网页值
<input value="foo" data-loading-text="bar" class="foo">
扩展 jquery -->
$.fn.bootstrapButton= function(type){
$el = $(this);
loadingText = $el.attr("data-loading-text");
currentValue = $el.val();
if(type === "loading")
$el.attr("data-loading-text",currentValue)
.val(loadingText)
.prop("disabled", true)
else if( type === "reset")
$el.val(loadingText)
.prop("disabled", false)
.attr("data-loading-text", currentValue)
}
函数调用 -->
save= function (name){
$save = $(".ok")
$save.bootstrapButton("loading")
$.ajax({
type: 'POST'
url: '/server'
cache: false
dataType: 'json'
data:"ss"
success: function(response){
alert("success")
}).always(function(){
$save.bootstrapButton("reset")
})
}
我正在扩展引导程序的按钮,因为jquery UI的按钮问题。但是 - 当这正在执行时,在 ajax 请求完成之前,我永远不会看到加载文本!!大常见问题!异步不是真正的异步吗?
顺便说一句,通过这个小的修改,代码可以正常工作(我可以看到加载文本(。
save= function (name){
$save = $(".ok")
$save.bootstrapButton("loading")
setTimeout(funtion(){
$.ajax({
type: 'POST'
url: '/server'
cache: false
dataType: 'json'
data:"ss"
success: function(response){
alert("success")
}).always(function(){
$save.bootstrapButton("reset")
})
},100)
}
即,以 100 毫秒的延迟,加载文本出现!,什么给出?
结构:
$.ajax({
....
}).always(function(){
$save.bootstrapButton("reset")
})
说:"执行这个 Ajax 命令,完成后始终运行这个匿名函数。
所以你已经明确地说,"等到Ajax调用完成",它正在工作。
在我的 ajax 查询中添加以下内容作为选项解决了这个问题。
异步:真
相关文章:
- 我的javascript for循环不起作用
- 如何将我的javascript库公开给其他客户端使用
- 可以Resharper在我的javascript函数声明中添加分号
- 为什么我的JavaScript堆栈排序函数不起作用
- 页面在我的javascript执行后重新加载,我不希望它这样做
- MVC正在忽略我的Javascript文件
- 为什么我的javascript程序没有将其转换为整数而不是字符串
- 为什么我的JavaScript在Safari上的严格模式下不能正常工作
- 我的javascript太慢了
- 由于某种原因,我的JavaScript函数无法工作
- 为什么我的javascript脚本在页面加载时运行,而不是使用onclick
- 我的Javascript代码出错
- 为什么我的javascript和jquery源文件始终不加载
- AJAX:为什么不是't我的javascript与内容一起加载
- 为什么不是't我的javascript向Project Euler返回正确答案's排名第一
- 为什么当我在带有锚点的页面之间移动时,Rails不重新加载我的javascript文件
- Num doenst在我的javascript中工作
- 在我的JavaScript模块中绑定一个点击事件
- 为什么我的JavaScript函数没有返回选中的数组值
- 使用Ajax将我的Javascript变量传递给PHP