1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| var newRow = "<tr id='?'>" +
"<td><input type=checkbox value='?'></td>" +
"<td>?</td>" +
"<td>?</td>" +
"<td>?</td>" +
"<td>?</td></tr>";
$("#mailtable").everyTime(30000, "checkForMail", function(){
// by using the Ajax Queue here, we can be sure that we will check for mail
// every 30 seconds, but ONLY if the previous mail check has already returned.
// This actually would be beneficial in a mail application, if one check for
// new mail takes longer than 30 seconds to respond, we wouldn't want the
// next Ajax call to kick off, because it might duplicate messages (depending
// on the server side code).
// So, by using the Ajax Queue plug-in, we can ensure that our Web client
// is only checking for new mail once, and will never overlap itself.
$.ajaxQueue({
url: "check_for_mail.jsp",
success: function(data)
{
var message = eval('(' + data + ')');
if (message.id != 0)
{
var row = newRow.replace("?", message.id);
row = row.replace("?", message.id);
row = row.replace("?", message.to);
row = row.replace("?", message.from);
row = row.replace("?", message.subject);
row = row.replace("?", message.sentTime);
$("#mailtable tbody").prepend(row);
$("#mailtable #"+message.id).addClass("mail_unread").addClass("messageRow");
$("#mailtable #"+message.id+ " td").addClass("mail");
$("#mailtable :checkbox").addClass("selectable");
}
}
});
|