我正在通过ajax在一个页面中加载一个帖子,该页面上有我需要的几个脚本。我需要重新加载这些脚本并最初将它们放在被调用的ajax页面中,但是实现了(因为Chrome控制台警告)这是禁止的,所以我试图使用正确的(?)方法并加载我的在我的ajax调用完成后使用jQuery.getScript编写脚本(通过.ajaxComplete获得通知)。
当我尝试加载我的脚本(参见下面的代码)时,它似乎有效,但是我在我的控制台中从地狱中获得了一系列“成功”消息,直到我的机器使用接近100%CPU,我需要强制退出浏览器。
任何想法导致了什么?谢谢!
jQuery(document).ready(function(){
jQuery.ajaxSetup({cache:false});
jQuery(".post-link").click(function(){
var post_link = $(this).attr("href");
jQuery("#single-post-container").html("content loading");
jQuery("#single-post-container").load(post_link);
jQuery( document ).ajaxComplete(function() {
jQuery( ".log" ).text( "Triggered ajaxComplete handler." );
jQuery.getScript( "scriptone.js" )
.done(function( script, textStatus ) {
console.log( textStatus );
})
.fail(function( jqxhr, settings, exception ) {
jQuery( "div.log" ).text( "Triggered ajaxError handler." );
});
jQuery.getScript( "scripttwo.js" )
.done(function( script, textStatus ) {
console.log( textStatus );
})
.fail(function( jqxhr, settings, exception ) {
jQuery( "div.log" ).text( "Triggered ajaxError handler." );
});
});
return false;
});
答案 0 :(得分:2)
每次进行ajax调用时,都会执行ajaxComplete
函数。它本身包含ajax调用,它们都将触发这个包含ajax调用的ajaxComplete函数,这些函数将触发这个ajaxComplete函数,该函数包含ajax调用,这些函数将触发这个ajaxComplete函数,该函数包含ajax调用,这些调用将触发包含ajax调用的ajaxComplete函数这将触发这个包含ajax调用的ajaxComplete函数,它将全部触发这个ajaxComplete函数,该函数包含ajax调用,这些函数将触发这个包含ajax调用的ajaxComplete函数,这些函数将触发这个ajaxComplete函数......
它是无限递归,而不是循环。不要在你的ajaxComplete函数中放置ajax。