我在页面和页面上使用 flex滑块也为其他作业进行 ajax调用。我的问题是当用户加载页面时, ajax调用阻止 flex滑块,直到ajax请求尚未完成。完成ajax请求后,flex滑块加载成功。如果我删除ajax脚本然后flex滑块加载速度非常快。
Flex滑块和ajax请求都写在此代码之间......
$(document).ready(function(){
$('#carousel').flexslider({
animation: "slide",
controlNav: true,
animationLoop: true,
slideshow: false,
itemWidth: 100,
itemMargin: 15,
asNavFor: '#slider'
});
// Rest code of slider will come here
// Ajax code start from here
$.ajax({
type: "GET",
async:false,
url: prefixUrl,
success: function(results) {
$(results).insertBefore('.event_container');
}
});
});
请建议任何想法,以便ajax调用不应阻止flex滑块。
谢谢
答案 0 :(得分:4)
Async false将等待您的操作完成。
试试这个:
$.ajax({
type: "GET",
async:true,
url: prefixUrl,
success: function(results) {
$(results).insertBefore('.event_container');
}
});
//更新2:
实际上它正在发生,因为你已经在准备好的函数中添加了Ajax,所以在你的ajax运行之前,页面就绪事件没有完成。尝试将其从准备好的文档中删除。
答案 1 :(得分:0)
我们使用ajax来获取回发操作,并且在您提到的代码中提到了async:false,这会导致同步ajax调用。同步ajax调用使您可以停止/阻止,直到您获得上一个请求的响应。所以试试这个:
$.ajax({
type: "GET",
url: yourURL,
success: function(results) {
$(results).insertBefore('.event_container');
},
async:true
});