Vkontakte.ru - Ana səhifədəki üzv sayı


Yəqin ki, vkontakte.ru saytının ana səhifəsindəki sayğaca çox adam diqqət yetirmişdir. Belə ki sayta ilk daxil olanda ekranda vkontakte üzvlərinin sayı göstərilir. Məsələn 45 675 565. Daha sonra bu ədəd canlı olaraq artmağa başlayır, 45 675 565, 45 675 568, 45 675 569, 45 675 572 və.s. arta-arta gedir. Vkontakte nəhəng sayt olduğundan üzvlərin sayı hər saniyə artır. İlk dəfə görəndə diqqətimi cəlb etməsə də, sonradan düşündüm ki, axı vkontakte üzvlərinin sayını canlı olaraq necə çatdırır? Yəni, AJAX funksiya ilə bazaya hər saniyə sorğu göndərib oradan istifadəçi sayı haqda məlumat əldə edib ötürürlər? Təbii ki, bu ağlabatan variant deyildi, çünki nə qədər güclü server olsa da, bu «israfçılığa» dözməz, həm də üzv sayı haqda məlumat bu boyda zülmə dəyməz. Və təxmini olaraq düşündüm ki, yəqin ki, ehtimal paylanmasından istifadə edilib, təsadüfi kəmiyyət üçün riyazi bir düstur qurulub və user sayı Javascriptin hesabına saat saniyəsi kimi dəyişir. (amma eynən saniyə kimi yox, elə saniyədə heç dəyişmir, eləsində də bir saniyəyə 3-4 ədəd dəyişir). Araşdırdım və eynən sonuncu variant ortaya çıxdı. Saytın HTML koduna baxdım və real durumu öyrəndim. Durum belədir.
Saytı ilk dəfə açanda bazadan üzvlərin sayı və həmin ana görə orta hesabla hər saniyə neçə üzvün qeydiyyatdan keçdiyini göstərən ədəd(məsələn 1.34). Daha sonra Javascript işə düşür və bu iki verilən üzrə aşağıdakı əməliyyatı aparır:

<script type="text/javascript">
 var memCount = 46909462;
 var memPerSec = 2.3057508074;
 function updateCount() {
  next = -(1000 / memPerSec)*Math.log(Math.random());
  memCountString = '' + memCount;
  len = memCountString.length;
  memCountString = memCountString.substr(0,len-6)+" "+memCountString.substr(len-6,3)+" "+memCountString.substr(len-3,3);
  ge('memCount').innerHTML = memCountString;
  memCount = memCount + 1;
  setTimeout(updateCount, next);
 }
 addEvent(window, 'load', updateCount);
var captcha_send = 'Отправить';
var captcha_cancel = 'Отмена';
</script>


Bu əməliyyatda «next = -(1000 / memPerSec)*Math.log(Math.random());» təsadüfi kəmiyyəti hər saniyə istifadəçi sayına nə qədər əlavə etmək lazım olduğunu təyin edir. Əslində bu 100% doğru rəqəmlər olmasa da, hər halda reallığı yaxşıca əks etdirir və ideyanın özü çox orijinal və xoşagələndir.
  • +2
  • 24 октября 2009, 23:50
  • Elliot

Комментарии (2)

RSS свернуть / развернуть
+
0
Əslində bu 100% doğru rəqəmlər olmasa da, hər halda reallığı yaxşıca əks etdirir

60% qeyd kecmish istifadeciler spamer, klon ve botlardi.
avatar

NARKOZ

  • 26 октября 2009, 13:40
+
0
Qeydiyyatdan kechenlerin kimliyi artiq sayt rehberliyinin ishidir :), haqqinda danishdighim funksiyanin ishi sadece say gostermekdir. Elbette vkontaktede spamlar ne qeder istesen var. Amma men Badoo-da olan qederini hech yerde gormemishem. Reg olan kimi dayanmadan mektublar gelir.
avatar

Elliot

  • 26 октября 2009, 14:11

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.