好的,此代码适用于除IE以外的所有浏览器(再次,预期)。该代码应该基于setInterval进行刷新,并且通常在除IE之外的所有其他浏览器中进行刷新,这只是不刷新。你能发现问题吗?
var nick = document.getElementById("chatnick").value;
var sessid = document.getElementById("sessid").value;
var room = document.getElementById("roomid").value;
function user_read() {
$.ajax({
type: "GET",
url: "methods.php",
data: {method: "u", room: room},
dataType: "html",
success: function (data, status, xhr) {
$("#userwindow").html(data);
setTimeout(user_read, 10000);
}
});
}
function ajax_read() {
$.ajax({
type: "GET",
url: "methods.php",
data: {method: "r", room: room},
dataType: "html",
success: function (data, status, xhr) {
$("#chatwindow").html(data);
setTimeout(ajax_read, 400);
}
});
}
function submit_msg() {
var msg = document.getElementById("chatmsg").value;
$.ajax({
type: "GET",
url: "methods.php",
data: {method: "w", room: room, m: msg, n: nick, sessid: sessid},
dataType: "html",
success: function (data, status, xhr) {
}
});
document.getElementById("chatmsg").value = "";
}
function keyup(arg1) {
if (arg1 == 13) submit_msg();
}
setTimeout(function(){ajax_read();}, 400);
user_read();
答案 0 :(得分:4)
可能是缓存问题,请尝试使用POST而不是GET。事实上,如果可以的话,可以随处使用帖子,因为 IE不会缓存POST请求/响应。
另外,你清除了ajax函数完成之前发送的消息,看起来很可疑。尝试重写如下:
function submit_msg() {
var msg = $("#chatmsg").val();
$.ajax({
type: "POST",
url: "methods.php",
data: {method: "w", room: room, m: msg, n: nick, sessid: sessid},
dataType: "html",
success: function (data, status, xhr) {
$("#chatmsg").val("");
}
});
}
答案 1 :(得分:1)
缓存是我在IE中使用AJAX遇到的一个问题。您是否尝试过向URL添加内容以使其独一无二?例如,一个随机整数作为参数。