使用JQuery/ASP.NET进行简单ajax聊天时出现堆栈溢出错误

使用JQuery/ASP.NET进行简单ajax聊天时出现堆栈溢出错误,asp.net,jquery,ajax,chat,settimeout,Asp.net,Jquery,Ajax,Chat,Settimeout,我正在尝试使用JQuery和ASP.NET创建一个简单的ajax聊天。我的代码是这样工作的: 当页面加载时,它通过对messages.aspx页面的请求刷新“chatbox”div,该页面处理从数据库获取新消息的操作,并使用setTimeout启动自动刷新。 每当用户单击“发送”按钮时,它都会将消息添加到messages.aspx页面加载代码中的数据库中。 当超时开始时,我从一开始就收到堆栈溢出错误,我不确定这是什么原因造成的?可能是缓存吗?可能messages.aspx中的代码无法在这5秒内完

我正在尝试使用JQuery和ASP.NET创建一个简单的ajax聊天。我的代码是这样工作的:

当页面加载时,它通过对messages.aspx页面的请求刷新“chatbox”div,该页面处理从数据库获取新消息的操作,并使用setTimeout启动自动刷新。 每当用户单击“发送”按钮时,它都会将消息添加到messages.aspx页面加载代码中的数据库中。 当超时开始时,我从一开始就收到堆栈溢出错误,我不确定这是什么原因造成的?可能是缓存吗?可能messages.aspx中的代码无法在这5秒内完成运行?任何帮助都将不胜感激

此外,我并不担心sql注入攻击,但b/c我只是想让它使用简单的代码

这是我的密码:

客户端

服务器端


您需要将函数调用用引号括起来,否则会立即对其求值,从而导致无限递归和堆栈溢出:

setTimeout("refreshChat()", 5000);

您需要将函数调用用引号括起来,否则会立即对其求值,从而导致无限递归和堆栈溢出:

setTimeout("refreshChat()", 5000);

javascript refreshChat函数正在递归地调用自身。将代码更改为:

function refreshChat() {
    $.get("messages.aspx", function (data) {
        $("#chatbox").empty();
        $("#chatbox").prepend(data);
    });
    setTimeout(refreshChat, 5000);
}

javascript refreshChat函数正在递归地调用自身。将代码更改为:

function refreshChat() {
    $.get("messages.aspx", function (data) {
        $("#chatbox").empty();
        $("#chatbox").prepend(data);
    });
    setTimeout(refreshChat, 5000);
}

+1:David M也是正确的,但我喜欢你的解决方案,不使用javascript eval。+1:David M也是正确的,但我喜欢你的解决方案,不使用javascript eval。