Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> время пребывания на страничке 
:(
    Опции темы
klyxa
Дата 27.11.2007, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 13.8.2006

Репутация: нет
Всего: нет



Ребят.дайте пожайлуста пример,как сделать,чтобы я мог посчитать время пребывания пользователя на странице..например ""дергал" ли скролл. Ну мне это нужно для того,чтобы знать сколько времени юзер читал правила,соглашения.я джава скрипте я не рулю.хелпп!
PM MAIL   Вверх
solenko
Дата 27.11.2007, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 9
Всего: 67



Если не секрет, зачем?
Вы так хотите чтобы пользоватеь прочитал соглашение? Ну ладно, я схожу покарю пока это время пройдет.
Пользователь или прочитает по собственной соле, и не прочитает как бы не изворачивался программист.


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Castro
Дата 27.11.2007, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 353
Регистрация: 31.8.2007
Где: Украина

Репутация: нет
Всего: 5



Время прибывания на странице можно попробовать узнать прицепив таймер на onload/unload и узнав разницу значений. 
Насчёт скролла подказать не смогу, не скажу так же насколько это всё кроссбраузерно. А как у Вас документ для чтения вложен? 
Можно сделать ход конём-если у Вас он грузится через frame, то теоретически скажем можно прицепить какой-то див скрытый на страницу и отслеживать изменялись ли его координаты, тоесть скролилась ли страница smile

Добавлено через 1 минуту и 9 секунд
solenko,  мне тож интересно зачем такое нужно smile)Попытка скопировать то, что в приложениях сделано?! smile 


--------------------
user posted image
PM MAIL ICQ GTalk   Вверх
12345c
Дата 27.11.2007, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



klyxa, если Вы в скриптах не разбираетесь, зачем Вам этот пример? Он далеко не простой, даже не в 20 строчек. Нужно решить ряд задач:

1) сбрасывать на сервер отчёты о прокрутке страницы без её перезагрузки (XMLHttp);
2)  определить, сколько времени задерживался юзер на каждом из участков (такой методики даже нет, нужно изобретать самому; переменные - скорость чтения, размер шрифта, величины прокрутки);
3) определять, покрыто ли было окно другим или не было ли свёрнуто (удивительно, но это возможно, не буду рассказывать, как, для краткости);
4) определить, работал ли пользователь с другим приложением во время чтения (как ни странно, это тоже возможно - нагрузив браузер выполняемым скриптом и измеряя скорость выполнения; в разных браузерах эффект будет несколько разным).
5) и тут не факт, что, прокручивая страницу, он не глядел в сторону. На помощь может прийти только предположение, что если перерывы нерегулярные, то он отвлекался. Напишите модуль, спрашивающий юзера, что он делал с 10 до 11, когда на компе висела 15-я страница Лицензионного соглашения. : )

Ну как, возьмётесь сделать, не зная языка и не имея опыта?

В наиболее простом виде это - да, замерить время между появлением документа (не onload!) и уходом со страницы, которое лучше измерить _на сервере_, не JS-ом. Прокрутка регистрируется событиями onscroll и onmousewheel и измеряется свойством document.body.scrollTop или document.documentElement.scrollTop. Отправлять отчёт о прокрутке - снова Ajax (XMLHttp). Так что в наиболее халтурном виде всё равно нужны серьёзные знания не только в JS.


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
Castro
Дата 27.11.2007, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 353
Регистрация: 31.8.2007
Где: Украина

Репутация: нет
Всего: 5



Мдя. Если юзер не захочет что-то читать, его и заставить не получится, разве когда это ему действительно нужно


--------------------
user posted image
PM MAIL ICQ GTalk   Вверх
klyxa
Дата 27.11.2007, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 13.8.2006

Репутация: нет
Всего: нет



да там какбы сайт фирмы. и заказчику нужно знать сколько времени убил нов. сотрудник над чтением всякой лобуды. реализация кнечно жопная

Добавлено через 4 минуты и 29 секунд
а  в сети есть скрипты? я хоть разобраться попробую..просто узнать время пребывания.хрен а этот скролинг
PM MAIL   Вверх
HotHead
Дата 27.11.2007, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 26.10.2007

Репутация: нет
Всего: 4



Я бы первым делом задумался над рализацией этой ерундятины на серверной стороне. При заходе на страницу писать серверное время в сессию, а потом вычитать его из времени следующего обращения к сайту.
PM MAIL   Вверх
klyxa
Дата 27.11.2007, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 13.8.2006

Репутация: нет
Всего: нет



на пхп вот я думаю можно так..ставим сессию,со тек знач. времени. потом при нажатии "я согласен",например, будет браться знач. выичтать из текущей..и без аяксов и пр.))

Добавлено через 4 минуты и 2 секунды
HotHead, гы твой пост не прочитал. да я то так подумал. но мне хотелось чтобы как закзчик просил сос кроль барами. а ту без джавы никуда..а вот..скажте плиз как сделать событие вроде onClick на скроль баре..я сделаю скрытое поле hidden да ему знач. on-off хотябы и далее опять через пхп)
PM MAIL   Вверх
ksnk
Дата 28.11.2007, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



window.onscroll - хандл для обработчика скролла оконного 
window.onresize - для ресайза.

Еще можно навесить на document.onmousemove, для пущего страху... Нехай босc будет удовлетворен smile


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
klyxa
Дата 28.11.2007, 01:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 13.8.2006

Репутация: нет
Всего: нет



камрад,плииз,живой пример. я могу отредактировать js код неоч. сложный. но вот сам чото написать я немогу(
PM MAIL   Вверх
ksnk
Дата 28.11.2007, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Код

<html><head>
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title> Не спи - замерзнешь</title>
</head>
<script language="javascript" type="text/javascript">
/**
 * @projectDescription Считаем, что юзер не спит, если он шевелит мышом, скроллером или окном.
 */    
/**
 * функция, выставляющая обработчик события на какой-то DOM объект 
 * @param {Object} a -тот самый DOM объект 
 * @param {Object} e -то самое событие без префикса on, можно указывать массив
 * @param {Object} o -та самая функция
 */
function attachEvent(a,e,o){
        if (e instanceof Array) 
            for(var i=0;i<e.length;i++) attachEvent(a,e[i],o);
        else if (document.addEventListener)
            a.addEventListener(e,o,false)
        else
            a.attachEvent('on'+e,o,false)
    }
/**
 * функция, удаляющая ранее установленый обработчик
 * @param {Object} a -тот самый DOM объект 
 * @param {Object} e -то самое событие без префикса on, можно указывать массив
 * @param {Object} o -та самая функция
 */
function detаchEvent(a,e,o){
    if (e instanceof Array) 
        for(var i=0;i<e.length;i++) detаchEvent(a,e[i],o);
    else if (a.removeEventListener) {
        a.removeEventListener(e, o, false);
    } else if (a.detachEvent) {
        try {
            a.detachEvent('on' + e, o);
        } catch (aEx) {}
    }
}
    
(function(){ // function - для сокрытия от общественности продуктов жизнедеятельности
    /**
     * время начала теста
     */
    var DateStart=new Date(),
    /**
     * Время последнего действия юзера
     */
        NoSleepTill= DateStart,
    /**
     * время, в течении которого юзер не сможет уснуть (в миллисекундах)
     */
        reading_delay=10000,
    /**
     * обработчик событий
     */
        handle=function(){
            NoSleepTill=new Date();    
        },
    // устанавливаем интервал проверки
        interval=setInterval(function (){
                var D=new Date();
                if((D.getTime()-NoSleepTill.getTime()) >reading_delay){
                    alert('Клиент спит!');
                    NoSleepTill=new Date();
                }
            },reading_delay)
    
    // поставим обработчик
    attachEvent(window,['scroll','resize','mousemove'],handle)    

    // за ради любви к чистоте! Также, иногда помогает IE почистить кучку за собой
    attachEvent(window,['unload'],function(){
        clearInterval(interval);
        detachEvent(window,['scroll','resize','mousemove'],handle);
    })
})()    
</script>
<body>
Ну очень -очень длинный текст<br>
Ну очень -очень длинный текст<br>

</body></html>



Это сообщение отредактировал(а) ksnk - 28.11.2007, 10:20


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
klyxa
Дата 28.11.2007, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 13.8.2006

Репутация: нет
Всего: нет



спасибо. подредактировал под себя - то что надо.обязательно тебе +1,когда у мя рейт. соотв. будет;) 
PM MAIL   Вверх
dsCode
Дата 28.11.2007, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: 19
Всего: 26



klyxa, =)) для Вас интерес составлял лишь пример работы с событиями и таймерами. Сама суть таска - честно, бредовая (так и передайте начальству ;)). Это как шутка была: "Ученные выяснили, что самой быстрой техникой чтения (примерно 0.2 секунды/текст) обладают русские. Это было определено по тому факту, как они читают условия лицензионного соглашения". =)


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2268 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.