Reputation: 2484
Alright, This code works in every browser except IE (again, to be expected). The code is supposed to refresh based on setInterval, and does so normally in all other browsers except IE, which just doesn't refresh. Can you spot the problem?
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();
Upvotes: 3
Views: 183
Reputation: 15241
Could be a caching issue, try using POST instead of GET. In fact, use post everywhere if you can as IE doesn't cache POST requests/responses.
Also, you clear the message sent before the ajax function has completed, seems fishy. Try rewriting like this:
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("");
}
});
}
Upvotes: 4
Reputation: 4625
Caching is a problem I've run across in IE using AJAX. Have you tried appending something to URLs to make them unique? For instance, a random integer as a param.
Upvotes: 1