Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 计时器中的Ajax正在影响我的服务器_Javascript_Php_Ajax - Fatal编程技术网

Javascript 计时器中的Ajax正在影响我的服务器

Javascript 计时器中的Ajax正在影响我的服务器,javascript,php,ajax,Javascript,Php,Ajax,我使用ajax,以便从服务器读取文件内容。我在计时器中调用ajax所在的函数。这会影响我的服务器。它会崩溃。如果这是正确的方法,会有什么问题? 请给我一些建议,因为我不知道它有什么问题 我首先调用函数:“函数(ctrl)” 这里是read-text.php文件: 代码的问题在于,您没有等待响应结束。因此,随着时间的推移,您正在发送一个又一个请求。这将在适当的时候耗尽所有内存。因此,在发送下一个请求之前,首先等待响应 这个怎么样 function loadXMLDoc(ctrl) { va

我使用ajax,以便从服务器读取文件内容。我在计时器中调用ajax所在的函数。这会影响我的服务器。它会崩溃。如果这是正确的方法,会有什么问题? 请给我一些建议,因为我不知道它有什么问题

我首先调用函数:“函数(ctrl)”

这里是read-text.php文件:


代码的问题在于,您没有等待响应结束。因此,随着时间的推移,您正在发送一个又一个请求。这将在适当的时候耗尽所有内存。因此,在发送下一个请求之前,首先等待响应

这个怎么样

function loadXMLDoc(ctrl) {
    var content=ctrl.id; 
    var xmlhttp = new XMLHttpRequest();
    var url = "../user/test/read-text.php?user="+content;

    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == XMLHttpRequest.DONE) {
            if (xmlhttp.status == 200) {
                document.getElementById("area").value=xmlhttp.responseText;
                setTimeout(loadXMLDoc(), 1200); //call the function again
            } else if (xmlhttp.status == 400) {
                console.log('There was an error 400');
            } else {
                console.log('something else other than 200 was returned');
            }
        }
    };

    xmlhttp.open("GET", url, true);
    xmlhttp.send();
};

loadXMLDoc(ctrl);

为什么不使用jquery或一些已经内置在Js框架中的ajax呢?:在阅读您的帖子时,我观察到了一些东西,但我不明白。内容是什么?您写了这样的内容:“setTimeout(content(),1200);//再次调用函数”。这是一个函数?。还有一件事。因为您删除了函数get(ctrl),我必须调用loadXMLDoc函数吗?对不起,这是一个输入错误。它不是
内容
,而是
加载xmldoc
。是,现在应该使用函数
loadXMLDoc
,而不是
get(ctrl)
。但是,您可以根据命名约定重命名该函数。谢谢您的帮助!!
<?php
    $rec_user=$_GET['user'];
    echo($rec_user);
    $chat = fopen($rec_user.".txt", "r") or die("Unable to open file!");
    echo fread($chat,filesize($rec_user.".txt"));
    fclose($chat);
?>
function loadXMLDoc(ctrl) {
    var content=ctrl.id; 
    var xmlhttp = new XMLHttpRequest();
    var url = "../user/test/read-text.php?user="+content;

    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == XMLHttpRequest.DONE) {
            if (xmlhttp.status == 200) {
                document.getElementById("area").value=xmlhttp.responseText;
                setTimeout(loadXMLDoc(), 1200); //call the function again
            } else if (xmlhttp.status == 400) {
                console.log('There was an error 400');
            } else {
                console.log('something else other than 200 was returned');
            }
        }
    };

    xmlhttp.open("GET", url, true);
    xmlhttp.send();
};

loadXMLDoc(ctrl);