Удомельский форум

Удомельский форум (http://second.udomlya.ru/uf/index.php)
-   Программирование (http://second.udomlya.ru/uf/forumdisplay.php?f=26)
-   -   Java скрипт Контакта (http://second.udomlya.ru/uf/showthread.php?t=18237)

Antarius 05.11.2009 12:44

Java скрипт Контакта
 
Всем известно,что на странице входа сайта ВК стоит скрипт типа "нас уже бла бла бла".Хочу себе такой же,но не знаю как его слямзить...

вприципе вот он:
PHP код:

<script type="text/javascript">
 var 
memcount 48070500;
 var 
mempersec 2.22540368253;
 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(updatecountnext);
 }
 
addevent(window'load'updatecount);

var 
captcha_send 'Отправить';
var 
captcha_cancel 'Отмена';

</script> 

я совсем новичек в этом,подскажите, как его заставить работать?

Luky 06.11.2009 14:18

Мож быть его надо вставить в код страницы...;d
Есть множество программ ...

Vulzscht 06.11.2009 20:56

к концу 2010 года все 145 миллионов Россиян будут фкантагди
риальне
особенно забавно выглядят переменные var

Messiah 06.11.2009 22:13

Цитата:

Сообщение от Antarius (Сообщение 443168)
Всем известно,что на странице входа сайта ВК стоит скрипт типа "нас уже бла бла бла"....я совсем новичек в этом,подскажите, как его заставить работать?

Код (кроме строк <SCRIPT LANGUAGE="JavaScript"> и </script>) нужно сохранять в файл .js, а в html-странице подключать:
<script type="text/javascript" src="путь_к_файлу_js"></script>

Pitty 07.11.2009 10:14

Цитата:

Сообщение от messiah (Сообщение 443502)
Код (кроме строк <script language="javascript"> и </script>) нужно сохранять в файл .js, а в html-странице подключать:
<script type="text/javascript" src="путь_к_файлу_js"></script>

А то, инлайн его нельзя разве использовать? я думал можно.

Messiah 07.11.2009 11:33

Цитата:

Сообщение от pitty (Сообщение 443609)
А то, нилайн его нельзя разве использовать? я думал можно.

Дык используй, он то спрашивает, как я понял, о вставке скрипта в свою страницу типа...

Ruble 07.11.2009 12:24

Цитата:

Сообщение от antarius (Сообщение 443168)
Всем известно,что на странице входа сайта ВК стоит скрипт типа "нас уже бла бла бла".Хочу себе такой же,но не знаю как его слямзить...

вприципе вот он:
PHP код:

<script type="text/javascript">
 var 
memcount 48070500;
 var 
mempersec 2.22540368253;
 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(updatecountnext);
 }
 
addevent(window'load'updatecount);

var 
captcha_send 'Отправить';
var 
captcha_cancel 'Отмена';

</script> 

я совсем новичек в этом,подскажите, как его заставить работать?

выдрано из чего то большого и работать не будет без того большого!

Ruble 07.11.2009 12:27

Цитата:

Сообщение от messiah (Сообщение 443502)
Код (кроме строк <script language="javascript"> и </script>) нужно сохранять в файл .js, а в html-странице подключать:
<script type="text/javascript" src="путь_к_файлу_js"></script>

нужно? можно и так и эдак

Messiah 07.11.2009 17:14

Цитата:

Сообщение от ruble (Сообщение 443642)
нужно? можно и так и эдак



Скажем так, желательно...Пусть следуют кошерными маршрутами.

Antarius 07.11.2009 17:56

Цитата:

Сообщение от ruble (Сообщение 443640)
выдрано из чего то большого и работать не будет без того большого!

Ясный прец,что не будет работать...Я вообще надеялся,что у когонибудь завалялся такой скрипт,ну или хотябы похожий.
Вобщем нужен счетчик который просто так будет цифры накручивать и все.Есть у кого такой?Поделитесь,пожалуйста:)

Luky 07.11.2009 19:25

Цитата:

Сообщение от Antarius (Сообщение 443757)
Ясный прец,что не будет работать...Я вообще надеялся,что у когонибудь завалялся такой скрипт,ну или хотябы похожий.
Вобщем нужен счетчик который просто так будет цифры накручивать и все.Есть у кого такой?Поделитесь,пожалуйста:)

А мозгом не подумать?google решает!:-?

Luky 07.11.2009 19:26

Вот ресурсик по яве http://javascript.ru/

Antarius 07.11.2009 20:12

google фуфло
не всегда можно найти,то что нужно...

Messiah 07.11.2009 20:47

Цитата:

Сообщение от Antarius (Сообщение 443757)
....нужен счетчик который просто так будет цифры накручивать и все...

#!/usr/bin/perl
$namefile="/home2/your_domen/public_html/mystat/count.txt";
$nameipfile="/home2/your_domen/public_html/mystat/ip.txt";
$ip=$ENV{"REMOTE_ADDR"};
open (IPFILE, "$nameipfile");
$ipold = ;
close(IPFILE);
chomp ($ipold);
if ($ipold eq $ip) {
exit;
}
open (IPFILE, "$nameipfile");
print IPFILE "$ip";
close(IPFILE);
open (COUNTFILE, "+<$namefile");
flock (COUNTFILE,2);
$count =readline(*COUNTFILE);
chomp ($count);
$count=$count + 1;
seek (COUNTFILE,0,0);
truncate(COUNTFILE,0);
print COUNTFILE "$count";
close(COUNTFILE);
print "Content-Type: text/html ";
print "$count";
exit;

Antarius 07.11.2009 21:20

Цитата:

Сообщение от Messiah (Сообщение 443793)
#!/usr/bin/perl
$namefile="/home2/your_domen/public_html/mystat/count.txt";
$nameipfile="/home2/your_domen/public_html/mystat/ip.txt";
$ip=$ENV{"REMOTE_ADDR"};
open (IPFILE, "$nameipfile");
$ipold = ;
close(IPFILE);
chomp ($ipold);
if ($ipold eq $ip) {
exit;
}
open (IPFILE, "$nameipfile");
print IPFILE "$ip";
close(IPFILE);
open (COUNTFILE, "+<$namefile");
flock (COUNTFILE,2);
$count =readline(*COUNTFILE);
chomp ($count);
$count=$count + 1;
seek (COUNTFILE,0,0);
truncate(COUNTFILE,0);
print COUNTFILE "$count";
close(COUNTFILE);
print "Content-Type: text/html ";
print "$count";
exit;

Это счетчик посещяемости?Да не,мне не такой нужен.
Да я и тот смог запустить:
PHP код:

<html>
<
script src="http://vkontakte.ru/js/functions.js?5"></script>
<script type="text/javascript">
 var memCount =100000;
 var memPerSec = 2.2;
 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);
 }
 window.onload = function(){
  updateCount();
 }
</script>

<b id='memCount'> 100000</b>
</html> 

Нужно было одну строчку то и добавить.
Правда он работает нормально только после 100 000.

Messiah 07.11.2009 23:05

Цитата:

Сообщение от Antarius (Сообщение 443800)
Это счетчик посещяемости? Да не,мне не такой нужен...Правда он работает нормально только после 100 000.

Тогда я не понимаю, что нужно вообще, и какая цель преследуется?
А что значение var memCount изменить не судьба?

Luky 07.11.2009 23:23

Цитата:

Сообщение от messiah (Сообщение 443842)
Тогда я не понимаю, что нужно вообще, и какая цель преследуется?
А что значение var memcount изменить не судьба?

Он хочет анимацию!
Так то так нас уже столько то столькото в)и анимация явская._.

Messiah 07.11.2009 23:45

Цитата:

Сообщение от Luky (Сообщение 443853)
Он хочет анимацию!
Так то так нас уже столько то столькото в)и анимация явская._.

Анимашку сваять ваще не вопрос и дело 3-х минут, чтоб в неё подставлялось высчитанное значение. А вот по поводу того, чего он хочет, он и сам не разобрался, говоря что приведённый текст - счётчик посещений. Видно что не понимает сути кода. Придётся разобрать по полкам, хоть и лениво. Только я уж на перле, поскольку уже неделю своим роутером разбираюсь, а в нём перловка и уже на зубах навязла, аж скрипит:
Что будет, если в браузере зайти на страницу со счетчиком и нажать "обновить"? Правильно - значение счетчика увеличится на единицу. Причем каждая новая загрузка страницы в браузер будет вызывать увеличение значения счетчика. Научим счетчик отслеживать заходы подряд с одного IP-адреса и не засчитывать их. Здесь кончается история счётчика посещений!!!! Для этого создадим файл, например, ip.txt и положим его в ту же директорию mystat на сервере. Назначим ему права доступа 666. В этом файле будем хранить IP-адрес, засчитанного счетчиком. Теперь осталось добавить проверку в скрипт. Добавим переменную, содержащую путь к файлу:
$nameipfile="/home2/your_domen/public_html/mystat/ip.txt";
Теперь надо получить IP-адрес посетителя. Содержится он в переменной $ENV{"REMOTE_ADDR"}, значение которой передается скрипту браузером посетителя вместе с запросом. Присвоим это значение переменной $ip:
$ip=$ENV{"REMOTE_ADDR"};
Теперь считаем из файла ip.txt значение IP-адреса, сравним его с полученным. Если они совпадают, тогда не засчитаем заход (завершив работу скрипта), если же не совпадают - увеличим значение счетчика и запишем новое значение IP-адреса в файл ip.txt:
PHP код:

open (IPFILE"$nameipfile");
$ipold = ;
close(IPFILE);
chomp ($ipold);
if (
$ipold eq $ip) {
exit;
}
open (IPFILE"$nameipfile");
print 
IPFILE "$ip";
close(IPFILE); 

Точность показаний счетчика стала выше. Как он поведет себя, если на страницу зайдут сразу двое? Одновременно два процесса попытаются произвести запись в файл с показаниями счетчика, в результате чего все данные могут быть потеряны. Чтобы этого не допустить, надо запретить одновременный доступ к файлу нескольких процессов. Можно с помощью функции flock, которая заблокирует файл, связанный с дескриптором, от доступа из других скриптов. Изменим процесс работы с файлом count.txt:
PHP код:

open (COUNTFILE"+<$namefile");
flock (COUNTFILE,2);
$count =readline(*COUNTFILE);
chomp ($count);
$count=$count 1;
seek (COUNTFILE,0,0);
truncate(COUNTFILE,0);
print 
COUNTFILE "$count";
close(COUNTFILE); 

Поясним действия.
1) Открываем файл для чтения и записи:
open (COUNTFILE, "+<$namefile");
2) Блокируем файл от доступа из других одновременно запущенных процессов выполнения скрипта
flock (COUNTFILE,2);
3) Считываем значение счетчика из файла
$count =readline(*COUNTFILE);
4) Удаляем символ конца строки (если он случайно неизвестно откуда появился)
chomp ($count);
5) Увеличиваем значение счетчика
$count=$count + 1;
6) Перемещаем указатель позиции в файле на его начало
seek (COUNTFILE,0,0);
7) Усекаем длину файла до текущей позиции (т. е. до начала файла, куда мы передвинули этот указатель предыдущей строкой)
truncate(COUNTFILE,0);
8) Записываем в файл новое значение счетчика
print COUNTFILE "$count";
9) Закрываем файл, одновременно снимая с него блокировку
close(COUNTFILE);
Итак, весь скрипт теперь будет иметь следующий вид:
PHP код:

#!/usr/bin/perl
$namefile="/home2/your_domen/public_html/mystat/count.txt";
$nameipfile="/home2/your_domen/public_html/mystat/ip.txt";
$ip=$ENV{"REMOTE_ADDR"};
open (IPFILE"$nameipfile");
$ipold = ;
close(IPFILE);
chomp ($ipold);
if (
$ipold eq $ip) {
exit;
}
open (IPFILE"$nameipfile");
print 
IPFILE "$ip";
close(IPFILE);
open (COUNTFILE"+<$namefile");
flock (COUNTFILE,2);
$count =readline(*COUNTFILE);
chomp ($count);
$count=$count 1;
seek (COUNTFILE,0,0);
truncate(COUNTFILE,0);
print 
COUNTFILE "$count";
close(COUNTFILE);
print 
"Content-Type: text/html ";
print 
"$count";
exit; 

Конец выполнения программы (без этого можно обойтись, но почему бы не следовать традициям). Снабжаем эту хрень заголовком:
Нас уже - [ ] ...вуаля

Antarius 08.11.2009 15:32

Цитата:

Сообщение от Messiah (Сообщение 443842)
Тогда я не понимаю, что нужно вообще, и какая цель преследуется?
А что значение var memCount изменить не судьба?

Цель:просто запустить.Хотел проверить слух,что это обманка,а не онлайн счетчик зарегестрировавшихся вконтакте.Слух подтвердил,запустив его.

var memCount менял,поэтому и сказал,что до 100 000 работает не корректно,поэтому я в вар и поставил минимальной число,с которго счетчик работает нормально.

Pitty 09.11.2009 00:55

Цитата:

Сообщение от antarius (Сообщение 444014)
Цель:просто запустить.Хотел проверить слух,что это обманка,а не онлайн счетчик зарегестрировавшихся вконтакте.Слух подтвердил,запустив его.

Var memcount менял,поэтому и сказал,что до 100 000 работает не корректно,поэтому я в вар и поставил минимальной число,с которго счетчик работает нормально.

На самом деле этот счётчик в контакте может работать достаточно корректно.
Обратите внимание на переменные, определяющие начало счёта и скорость счёта. Попробуйте посмотреть код этого счётчика в разные дни. Вы будете приятно удивлены, что эти цифры меняются....
По секрету могу сказать, как в некоторых технических системах определяется скорость. Возьмём простой пример. Пусть на оси вращается один большой зуб и 36 маленьких, расположены равномерно по окружности. Мы можем определить только положение (момент) большого зуба.
Вопрос: как определить моменты прохода мимо датчика маленьких зубьев (датчик их не чувствует, он чувствует только большой зуб).... Если за пару дней ответа не будет, напишу как на самом деле делается. В)

Antarius 09.11.2009 13:34

Цитата:

Сообщение от Pitty (Сообщение 444253)
По секрету могу сказать, как в некоторых технических системах определяется скорость. Возьмём простой пример. Пусть на оси вращается один большой зуб и 36 маленьких, расположены равномерно по окружности. Мы можем определить только положение (момент) большого зуба.
Вопрос: как определить моменты прохода мимо датчика маленьких зубьев (датчик их не чувствует, он чувствует только большой зуб).... Если за пару дней ответа не будет, напишу как на самом деле делается. В)

T*k+T*n/37 k-кол-во оборотов, n-номер маленького зуба,Т-периуд
надеюсь я правильно понял задание:)

Pitty 09.11.2009 17:20

Цитата:

Сообщение от Antarius (Сообщение 444281)
T*k+T*n/37 k-кол-во оборотов, n-номер маленького зуба,Т-периуд
надеюсь я правильно понял задание:)

В приципе правильно.
Только время, естественно, отсчитывается от прохождения мимо датчика большого зуба. Зубьев маленьких не 36, как я писал, а 35 (всего 36). С каждым приходом большого зуба меняется (меряется) Т, тем самым достигается приемлемая точность.
Так вот, в данном случае Т - равностильно переменной "количество пользователей в секунду", что позволяет на странице в реальном времени приблизительно отображать количество (вполне возможно, что реальное) подключенных пользователей.
ЗЫ. Как эксперимент со скачиванием скрипта в разные дни?
В данном случае Т*k = T0 - исходная величина, к которой прибавляется скорость*время (с момента загрузки страницы). Можно было бы пойти дальше: вывести полином, интерполирующий с необходимым приближением суточный/недельный/месячный график скорости подключения новых пользователей, но зачем всё так усложнять? Сейчас Мессия начнёт опять меня упрекать, что я всё усложняю... Нееееа, я не усложняю. В))
ЗЫ. А вообще, некоторых случаях (и довольно частых) именно так и делают. В)

Troll 09.11.2009 17:41

to Pitty: Вот только не понятно для чего такие сложности при описании банального среднестатистического значения? Ежу понятно, что дергать реальные значения с базы в реальном времени вверх не умности, намного проще при построении страницы запихнуть в переменные текущий макс и подсчитанное среднее значение добавлений регистрации в секунду и далее плюсовать.

Messiah 09.11.2009 22:04

Цитата:

Сообщение от troll (Сообщение 444315)
to pitty: Вот только не понятно для чего такие сложности при описании банального среднестатистического значения? Ежу понятно, что дергать реальные значения с базы в реальном времени вверх не умности, намного проще при построении страницы запихнуть в переменные текущий макс и подсчитанное среднее значение добавлений регистрации в секунду и далее плюсовать.

Даже на такой простой задаче, вариантов решения как простых, так и сложных....не счесть.

Pitty 11.11.2009 22:03

Цитата:

Сообщение от troll (Сообщение 444315)
to pitty: Вот только не понятно для чего такие сложности при описании банального среднестатистического значения? Ежу понятно, что дергать реальные значения с базы в реальном времени вверх не умности, намного проще при построении страницы запихнуть в переменные текущий макс и подсчитанное среднее значение добавлений регистрации в секунду и далее плюсовать.

Не все это понимают... В) Некоторым кажется это банальным обманом, а те два числа считают "магическими".

Messiah 11.11.2009 22:26

Меня в самом начале "купила" его фраза:
Код HTML:

Всем известно,что на странице входа сайта ВК стоит скрипт типа "нас уже бла бла бла". ___91;b___93;Хочу себе такой же___91;/b___93;, но не знаю как его слямзить...
Ну, думаю, человек что-то своё ваяет, а в реале оказалось до банального...:) Ну и ..."романтический момент потерян"...(С) Масяня


Текущее время: 00:07. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot