Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP]Chat Anti flood
Forum PHP.pl > Forum > Przedszkole
miras
witam, mam taki skrypt mini czatu opartego o plik tekstowy:

  1.  
  2.  
  3. var instanse = false;
  4. var state;
  5. var mes;
  6. var file;
  7.  
  8. function Chat () {
  9. this.update = updateChat;
  10. this.send = sendChat;
  11. this.getState = getStateOfChat;
  12. }
  13.  
  14. //gets the state of the chat
  15. function getStateOfChat(){
  16. if(!instanse){
  17. instanse = true;
  18. $.ajax({
  19. type: "POST",
  20. url: "inc/process.php",
  21. data: {
  22. 'function': 'getState',
  23. 'file': file
  24. },
  25. dataType: "json",
  26.  
  27. success: function(data){
  28. state = data.state;
  29. instanse = false;
  30. },
  31. });
  32. }
  33. }
  34.  
  35. //Updates the chat
  36. function updateChat(){
  37. if(!instanse){
  38. instanse = true;
  39. $.ajax({
  40. type: "POST",
  41. url: "inc/process.php",
  42. data: {
  43. 'function': 'update',
  44. 'state': state,
  45. 'file': file
  46. },
  47. dataType: "json",
  48. success: function(data){
  49. if(data.text){
  50. for (var i = 0; i < data.text.length; i++) {
  51. $('#chat-area').append($("<p>"+ data.text[i] +"</p>"));
  52. }
  53. }
  54. document.getElementById('chat-area').scrollTop = document.getElementById('chat-area').scrollHeight;
  55. instanse = false;
  56. state = data.state;
  57. },
  58. });
  59. }
  60. else {
  61. setTimeout(updateChat, 1500);
  62. }
  63. }
  64.  
  65. //send the message
  66. function sendChat(message, nickname, avatar, link)
  67. {
  68. updateChat();
  69. $.ajax({
  70. type: "POST",
  71. url: "inc/process.php",
  72. data: {
  73. 'function': 'send',
  74. 'message': message,
  75. 'nickname': nickname,
  76. 'file': file,
  77. 'link': link,
  78. 'avatar': avatar
  79. },
  80. dataType: "json",
  81. success: function(data){
  82. updateChat();
  83. },
  84. });
  85. }
  86.  



Potrzebuje dorobić do tego anti-flood, żeby jedna osoba mogła wysłac wiadomość np. co 3 sekundy, kombinowałem z setTimout, ale nic z tego nie wyszło i nie mam pomysłu jak to ugryźć...

Dzięki z góry!
Beniooo
Zrób zmienną jakąś, przy wykonaniu sendchat ustawiaj jej wartość aktualnego czasu(polecam format unix) a przed wysłaniem sprawdź czy zmienna+3sekundy < od aktualnego czasu, jeśli tak, to wyślij, jeśli nie, wyświetl np. alerta, aby użytkownik zaczekał z wysłaniem wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.