Ajax get请求在几秒钟后停止工作

时间:2017-06-10 11:34:43

标签: javascript jquery ajax

我在我的网站上使用AJAX进行聊天服务。

我使用AJAX脚本使用每秒写入文本文件的新聊天行更新聊天区域。

一切都按预期工作,但当页面上不活动50秒时,AJAX get请求无法用聊天行填充聊天区域;它只是停止工作,就像AJAX = ansyncroniously。

我必须重新加载页面才能获得新的聊天行。

以下是我目前正在使用的代码:

//Updates the chat
function updateChat() {
    $.ajax({
        type: "GET",
        url: "update.php",
        data: {
            'state': state,
            'file': file
        },
        dataType: "json",
        cache: false,
        success: function(data) {
            if (data.text != null) {
                for (var i = 0; i < data.text.length; i++) {
                    $('#chat-box').append($(" " + data.text[i] + " "));
                }
                document.getElementById('chat-area').scrollTop = document.getElementById('chat-area').scrollHeight;
            }
            instanse = false;
            state = data.state;
            setTimeout('updateChat()', 1);
        },
    });
}

在我使用的调用index.php页面上:

var chat = new Chat("chat1.txt");
    chat.init();
    chat.updateChat();

var name = "janedoe34";

无法弄清楚为什么它会停止工作。

我做错了什么,如何解决?

1 个答案:

答案 0 :(得分:2)

在没有运气的情况下搜索stackoverflow以获得答案后,​​我看到了类似这样的问题 - Ajax requests work for 30 seconds但是和其他人一样,看到没有答案。

事实证明解决方案是调整我的php.ini文件以允许最长执行时间超过30秒,或者只是将以下代码添加到我的PHP脚本的开头;

ini_set('max_execution_time',0);

默认情况下,PHP将max_execution_time设置为30秒,将值设置为0会删除时间限制并允许ajax脚本继续运行。

相关问题