AJAX循环,在控制台/代码中手动调用函数onload

时间:2015-04-09 20:51:10

标签: javascript jquery html ajax

我有两个功能:

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:密码

0 个答案:

没有答案