我有两个功能:
function find_existing_widgets(){
xmlHttp = new XMLHttpRequest();
xmlHttp.open('GET', './_includes/check-load-user-settings.php', true);
xmlHttp.onreadystatechange = open_existing_widgets;
xmlHttp.send(null);
}
function open_existing_widgets(){
if(xmlHttp.readyState==4 && xmlHttp.status==200)
{
xmlResponse = xmlHttp.responseXML;
root = xmlResponse.documentElement;
var widget_id = root.getElementsByTagName('widget_id');
var name = root.getElementsByTagName('name');
var type = root.getElementsByTagName('type');
var value = root.getElementsByTagName('value');
for(i= 0; i< name.length; i++)
{
nameText = name.item(i).childNodes[0].nodeValue;
widgetID = widget_id.item(i).childNodes[0].nodeValue;
//var value = name.item(i).firstChild.data;
alert(nameText);
nameText = nameText.replace(/\s+/g,'_');
//alert(value); WORKS
widget_creator();
load = "./widgets/"+nameText+"/index.php?widget_id="+widgetID;
//alert(load); WORKS
$('.wrapper:first .main_sec').load(load);
$('.wrapper:first').fadeIn(1000);
}
}
}`
4个场景:
一个。在find_existing_widgets()
标记上运行<body>
onload函数,效果很好。运行一次并相应地显示数据
两个。在</body>
标记之前运行相同的功能,例如:<script>find_existing_widgets()</scripts>
,这会导致无限循环。
三。在JS代码中运行与window.onload = find_existing_widgets();
相同的功能。这导致了与两个无限循环相同的问题。
四。如果我从控制台手动运行它,它可以很好地工作。
为什么循环?有什么区别?
在那里,你会看到正在循环的执行。我正在使用AJAX,所有的javascript都可以在chrome的开发工具中看到。
示例:
josesebastianmanunta.com/animated3/login.php用户:smanunta pass:密码