javascript - Reduce AJAX request size. Simple chat with Polling system -


notice: replaced polling system websockets i still want know answer questions above.

i'm trying reduce ajax request of traditional-polling message system, don't know how it:

$chatbox = $("#chatbox");  setinterval(function(){     // send sha1 of chatbox html content verify changes.     $.post("post.php", {checksum: hex_sha1($chatbox.html())}, function (data, status) {          switch (status) {             case "success":                  // if version of "post.php" checksum different mine (there changes) data isn't empty; assign data new content of chatbox.                 if(data){                      $chatbox.html(data);                           $chatbox.scrolltop($chatbox[0].scrollheight);                  }              break;              default:                  $chatbox.html('connection error...');              break;                                }                            }); }, 1000); 

well, see use setinterval() 1000 miliseconds parameter , sha1 checksum system can reduce size of ajax response 343 b (except when "post.php" returns new message, obviously)


questions:

  • why ajax requests have ever same size (343 b) though change sha1 (20 b) hash md5 (16 b)?

  • my checksum variable (sha1) occuppies 20 b: where remaining 323 b?

  • could reduce more ajax request size? how?


note:

hex_sha1() implementation of sha1 algorithm javascript: http://pajhome.org.uk/crypt/md5/sha1.html

note 2:

unfortunately can't use server-push technique node.js. can use javascript (client-side) , php.

why not use plain javascript ajax request? maybe ajax data long, that's why has large size: , thing can make ajax data have few data.

what want? facebook ajax polling? on server php:

$chat_data = "(this chat data variable if there no chat data idle)"; while (!$chat_data) {      // when there's no chat data let's idle request without disconnecting      // client ajax request.      sleep(1); } exit(json_encode($chat_data)); 

on javascript client side:

function repoll () {      chat_poll = new xmlhttprequest();      // chat_req variable sending post data server.      chat_req = new formdata();      chat_req.append("do", "chatpoll");      chat_poll.open("post", "post.php");      chat_poll.send(chat_req);      chat_poll.onload = function () {      // here chat data      // repoll server      repoll(); }  repoll(); 

by doing this, implementing facebook server polling.


for websocket example in javascript client side:

web_socket = new websocket("ws://[thesocket]:[theport]"); web_socket.onmessage = function (w) {      // here. fire if messages received websocket.      // message w.data variable.      alert("data received: " + w.data); }  // send data web socket this: web_socket.send("the data want. prefer json sending configuration , chat data or xml if want"); 

Comments

Popular posts from this blog

python - TypeError: start must be a integer -

c# - DevExpress RepositoryItemComboBox BackColor property ignored -

django - Creating multiple model instances in DRF3 -