注意: 我替换了我的投票系统,
websockets
但我仍然想知道上述问题的答案。
我正在尝试减少传统轮询消息系统的 AJAX 请求,但我不知道如何获取它:
$chatbox = $("#chatbox");
setInterval(function(){
// I send the sha1 of the chatbox html content to verify changes.
$.post("post.php", {checksum: hex_sha1($chatbox.html())}, function (data, status) {
switch (status) {
case "success":
// If version of "post.php" checksum is different than mine (there are changes) data isn't empty; I assign data as the new content of the chatbox.
if(data){
$chatbox.html(data);
$chatbox.scrollTop($chatbox[0].scrollHeight);
}
break;
default:
$chatbox.html('Connection error...');
break;
}
});
}, 1000);
好吧,正如您所见,我使用setInterval()
毫秒1000
作为参数,并且由于SHA1
校验和系统,我可以减少所有 AJAX 响应的大小343 B
(显然,“post.php”返回一些新消息时除外)
问题:
为什么我所有的 AJAX 请求都具有相同的大小(
343 B)
即使我将SHA1 (20 B
) 哈希更改为MD5 (16 B
)?我的校验和变量 ( SHA1 ) 占用
20 B
:剩下的在哪里323 B
?我可以减少更多的 AJAX 请求大小吗? 如何?
笔记:
hex_sha1()
是 Javascript 的SHA1算法的实现:http: //pajhome.org.uk/crypt/md5/sha1.html
笔记2:
不幸的是,我不能使用像
node.js
. 我只能使用 Javascript(客户端)和 PHP。