Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.03.2012, 22:26
Новичок на форуме
Отправить личное сообщение для hoffnung Посмотреть профиль Найти все сообщения от hoffnung
 
Регистрация: 10.03.2012
Сообщений: 2

Непонятная функция
Всем привет!
В написании программы столкнулась с тем что браузер вычисляет данные по этой функции данные для проверки (например, при вводе имени сразу идет 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 впервые в жизни сталкиваюсь. Подскажите пожалуйста что она хоть примерно делает Я пишу на C++, C# и это для меня как китайское народное письмо=)
Буду признательна за помощь
Ответить с цитированием
  #2 (permalink)  
Старый 10.03.2012, 22:59
Server
Отправить личное сообщение для Rootpassword Посмотреть профиль Найти все сообщения от Rootpassword
 
Регистрация: 26.09.2011
Сообщений: 252

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

Последний раз редактировалось Rootpassword, 10.03.2012 в 23:07.
Ответить с цитированием
  #3 (permalink)  
Старый 10.03.2012, 23:17
Новичок на форуме
Отправить личное сообщение для hoffnung Посмотреть профиль Найти все сообщения от hoffnung
 
Регистрация: 10.03.2012
Сообщений: 2

C++ по сравнению с javascript мелочи=)
Вот почему вот этот участок '&ts=' + (+new Date) дает такой результат - ts=1331397840952?
При чем первая половина цифр соответствует части идентификатора одного из параметров cockie сайта? В описании написано что Date это дата
Ответить с цитированием
  #4 (permalink)  
Старый 10.03.2012, 23:24
Server
Отправить личное сообщение для Rootpassword Посмотреть профиль Найти все сообщения от Rootpassword
 
Регистрация: 26.09.2011
Сообщений: 252

Ну так это капча? Автор просто от вас кое-что скрывает. А Date это дата, пока автор не посчитает иначе ))) там unixtime как минимум.
Ответить с цитированием
  #5 (permalink)  
Старый 10.03.2012, 23:27
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

1331397840952 - это время в секундах. ts=1331397840952 этот параметр нужен чтобы браузер не закешировал картинку
Ответить с цитированием
  #6 (permalink)  
Старый 10.03.2012, 23:30
Server
Отправить личное сообщение для Rootpassword Посмотреть профиль Найти все сообщения от Rootpassword
 
Регистрация: 26.09.2011
Сообщений: 252

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

Последний раз редактировалось Rootpassword, 10.03.2012 в 23:40.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
функция и несуществующий id Ankh Элементы интерфейса 4 10.02.2012 23:49
функция не успевает Sadist_dead Элементы интерфейса 22 02.10.2011 19:00
Функция сохранения документа LRCenter Общие вопросы Javascript 11 27.04.2011 23:03
Где вызывается функция? cradis Общие вопросы Javascript 5 23.04.2011 13:47
Функция меняющая значение input type text. Value не подходит( Sundog Общие вопросы Javascript 1 25.09.2009 15:06