我在我的网站上使用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";
无法弄清楚为什么它会停止工作。
我做错了什么,如何解决?
答案 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脚本继续运行。