Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Непонятная функция (https://javascript.ru/forum/misc/26501-neponyatnaya-funkciya.html)

hoffnung 10.03.2012 22:26

Непонятная функция
 
Всем привет!
В написании программы столкнулась с тем что браузер вычисляет данные по этой функции данные для проверки (например, при вводе имени сразу идет get запрос к сайту).
function miniScribe(eName, more, cat) {
          var log = [], cat = cat || 'client_event', more = more || {};
          more.event_name = eName;
          for (var k in more) 
          { log.push('"' + k + '":"' + more[k] + '"'); };
          (new Image()).src = '//scribe.somesite.com/scribe?category=' + encodeURIComponent(cat) + '&log=' + encodeURIComponent('{' + log.join(',') + '}') + '&ts=' + (+new Date);

Она создает ссылку такого вида
/scribe?category=client_event&log=%7B%22event_name% 22%3A%22web%3Asignup%3Aform%3Aemail%3Afocus_field% 22%7D&ts=1331397840952

Я с javascript впервые в жизни сталкиваюсь. Подскажите пожалуйста что она хоть примерно делает:help: Я пишу на C++, C# и это для меня как китайское народное письмо=)
Буду признательна за помощь:thanks:

Rootpassword 10.03.2012 22:59

нну. Странно, что вы, зная C++, тут китайцев вспомнили.
В лог заводит пары ключ-значение more (Либо пустое, либо переданное, минимум 1 есть), создает картинку и прописывает к ней путь-через кодирование параметров в ГЕТ запросе. Картинка, судя по всему, потом куда то аппендится-вроде на капчу похоже.
Только код потенциально проблемный.

hoffnung 10.03.2012 23:17

C++ по сравнению с javascript мелочи=)
Вот почему вот этот участок '&ts=' + (+new Date) дает такой результат - ts=1331397840952?
При чем первая половина цифр соответствует части идентификатора одного из параметров cockie сайта? В описании написано что Date это дата:-?

Rootpassword 10.03.2012 23:24

Ну так это капча? Автор просто от вас кое-что скрывает. А Date это дата, пока автор не посчитает иначе ))) там unixtime как минимум.

zebra 10.03.2012 23:27

1331397840952 - это время в секундах. ts=1331397840952 этот параметр нужен чтобы браузер не закешировал картинку

Rootpassword 10.03.2012 23:30

время в миллисекундах. Похоже да, для предотвращения кэширования. Или для ограничения срока действия.


Часовой пояс GMT +3, время: 21:29.